Compare commits

..

2104 Commits

Author SHA1 Message Date
jgellman%netscape.com
0b2424f7ca netlib glue, not as modular as we want but getting there
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@13281 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-21 21:51:10 +00:00
jgellman%netscape.com
75bfddcd5c it builds!!
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@13056 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-17 01:37:57 +00:00
jgellman%netscape.com
d67638c1e0 move old C api stuff out of rdf.h, small changes to COM API
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12956 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-16 01:30:03 +00:00
jgellman%netscape.com
021dfd7c81 RDF_XPCOM_BRANCH
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12953 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-16 00:44:55 +00:00
rjc%netscape.com
272deb6ee9 More HT_RAPTOR support.
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12250 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-08 01:05:41 +00:00
rjc%netscape.com
f81f4440bd Support for HT_RAPTOR.
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12249 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-08 00:56:49 +00:00
jgellman%netscape.com
914f82571b add rdfstr.h
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12236 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-07 23:05:10 +00:00
jgellman%netscape.com
0f1dfe3d0d remove various XP dependencies
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12235 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-07 23:04:45 +00:00
guha%netscape.com
05693f5648 try again
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12217 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-07 20:43:39 +00:00
jgellman%netscape.com
26c6838a88 back out changes to rdf.h until later...: rdf.h
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12154 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-07 04:25:27 +00:00
guha%netscape.com
90406a1af2 Disentangling RDF from the include file mess.
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12149 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-07 02:06:36 +00:00
jgellman%netscape.com
41eefd7f6c rdf c api factored out
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12104 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-06 22:32:41 +00:00
jgellman%netscape.com
ab25b9b291 initial checkin of a bunch of stuff that doesn't work
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@12102 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-06 22:31:12 +00:00
(no author)
a151d7380d This commit was manufactured by cvs2svn to create branch 'RDF_XPCOM_BRANCH'.
git-svn-id: svn://10.0.0.236/branches/RDF_XPCOM_BRANCH@11545 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 10:28:36 +00:00
ftang%netscape.com
971a5378de check in fix for Bugzilla bug 832. Reviewed by rjc
git-svn-id: svn://10.0.0.236/trunk@11543 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 10:28:34 +00:00
despotdaemon%netscape.com
8d6dff5003 Pseudo-automatic update of changes made by locka@cork.cig.mot.com.
git-svn-id: svn://10.0.0.236/trunk@11542 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 08:36:07 +00:00
brendan%netscape.com
35c54850af LO_GetBuiltinByIndex should not be ifdef JAVA or OJI.
git-svn-id: svn://10.0.0.236/trunk@11541 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 07:06:56 +00:00
rjc%netscape.com
a54d63b69f Finish Shack reflection into JavaScript for Win32 by setting HT_Pane reference in lo_builtin struct.
git-svn-id: svn://10.0.0.236/trunk@11540 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 06:12:35 +00:00
shaver%netscape.com
0e6ba073d6 we need RDF now
git-svn-id: svn://10.0.0.236/trunk@11539 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 06:11:58 +00:00
warren%netscape.com
8f2f0ece8a Renamed to shorter name for Mac.
git-svn-id: svn://10.0.0.236/trunk@11538 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 05:45:49 +00:00
valeski%netscape.com
3831bf98d5 fixing build bustage
git-svn-id: svn://10.0.0.236/trunk@11535 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 05:32:13 +00:00
warren%netscape.com
5f491ff820 New OJI networking APIs.
git-svn-id: svn://10.0.0.236/trunk@11533 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 05:29:48 +00:00
shaver%netscape.com
657b6cc157 start on DOM version of lo_SetStyleSheetLayerProperties
git-svn-id: svn://10.0.0.236/trunk@11532 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 05:03:27 +00:00
shaver%netscape.com
972fdcfd77 only build lm_dom.c if DOM set
git-svn-id: svn://10.0.0.236/trunk@11531 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 04:47:55 +00:00
troy%netscape.com
62662fd601 Reserved IID for nsIHTMLReflow
git-svn-id: svn://10.0.0.236/trunk@11530 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 04:15:35 +00:00
shaver%netscape.com
f5afb8bcb4 remove bogus (vestigial?) builtin_count reference
git-svn-id: svn://10.0.0.236/trunk@11529 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 03:48:49 +00:00
brendan%netscape.com
ecce3f68e3 - Need JS_THREADSAFE in mozilla.mak and config.mak (and because of the latter,
don't need it in js/src/makefile.win).
- Added DOM support.
- Break up really long lines in mozilla.mak using backslashes.
- Added /I../../lib/libdom to several places (ugh).
- factor some mime.lib stuff better, but still not consistent in how SMART_MAIL
  and MOZ_MAIL_NEWS select it.
- Include spans and transclusion stuff, shaver and toshok to clean up later.
- Use ?: instead of if/else in layout.c to minimize source and generated code.
- Use strong typing for struct DOM_foo * types without including domstyle.h,
  by using mighty struct tags.
- Fix doc_id signedness in lm_dom.h (also eliminate tabs, but use 8 for
  tab-width).


git-svn-id: svn://10.0.0.236/trunk@11524 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 02:07:26 +00:00
akkana%netscape.com
1094bbfc62 Add rdf dependancy -- fix Linux build
git-svn-id: svn://10.0.0.236/trunk@11523 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 02:05:19 +00:00
brendan%netscape.com
1f28471085 Use XP_ASSERT, not PR_ASSERT, for continuable assertbotches in mozilla.exe.
git-svn-id: svn://10.0.0.236/trunk@11521 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 01:41:04 +00:00
terry%netscape.com
19c004bc33 Mention the file 'checkoutlist' (as suggested by Todd Kennedy
<Todd.Kennedy@Eng.Sun.COM>).


git-svn-id: svn://10.0.0.236/trunk@11520 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 01:22:33 +00:00
cmanske%netscape.com
edae47c804 Added check for USEMAP when deciding default border width in image tag
git-svn-id: svn://10.0.0.236/trunk@11519 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 01:20:14 +00:00
peterl%netscape.com
2832ba164e use new get value as string api
git-svn-id: svn://10.0.0.236/trunk@11518 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 01:09:19 +00:00
peterl%netscape.com
b91b3cb2d5 added get value as string
git-svn-id: svn://10.0.0.236/trunk@11517 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 01:08:59 +00:00
peterl%netscape.com
98aaec70ef make text decoration always an enum
git-svn-id: svn://10.0.0.236/trunk@11516 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 01:08:44 +00:00
rjc%netscape.com
3388b59014 Reflect Shack into JavaScript. New file: lm_tree.c
git-svn-id: svn://10.0.0.236/trunk@11515 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:55:11 +00:00
karnaze%netscape.com
c99190b224 fixed case sensitive include for unix
git-svn-id: svn://10.0.0.236/trunk@11514 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:55:03 +00:00
rjc%netscape.com
f234b9d8da Reflect Shack into JavaScript. Approval: sdagley
git-svn-id: svn://10.0.0.236/trunk@11513 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:53:40 +00:00
cls%seawood.org
f61c2da239 Changed check for EDITOR to MOZ_EDITOR.
git-svn-id: svn://10.0.0.236/trunk@11512 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:53:10 +00:00
rjc%netscape.com
52eb848af9 Reflect Shack into JavaScript. Reviewed and approved by Brendan (libMocha) and Nisheeth (Layout).
git-svn-id: svn://10.0.0.236/trunk@11511 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:53:09 +00:00
rjc%netscape.com
9c2d9abe68 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@11510 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:51:18 +00:00
cls%seawood.org
959419a5dc Replaced checks for NO_EDITOR with checks for MOZ_EDITOR. Changed check for EDITOR to MOZ_EDITOR.
git-svn-id: svn://10.0.0.236/trunk@11509 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:50:40 +00:00
cls%seawood.org
e36b6c8d7f Replaced checks for NO_EDITOR with checks for MOZ_EDITOR. Compile embed.cpp with $(CCC) instead of $(CC).
git-svn-id: svn://10.0.0.236/trunk@11508 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:49:28 +00:00
cls%seawood.org
e6d0bdcfb8 Replaced checks for NO_EDITOR with checks for MOZ_EDITOR. Removed check for NO_EDITOR from config.mk. Removed EDITOR=1 from config.mk. Set MOZ_EDITOR= ifdef MOZ_LITE.
git-svn-id: svn://10.0.0.236/trunk@11507 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:48:23 +00:00
akkana%netscape.com
0fe4cfe496 HFolder should already be caught by the earlier wildcard
git-svn-id: svn://10.0.0.236/trunk@11506 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:39:58 +00:00
cls%seawood.org
04bc6f853f Finished off MOZ_USER_DIR patch. This allows developers to change config-dir at compile time. Defaults to .netscape for classic build and .mozilla for autoconf build.
git-svn-id: svn://10.0.0.236/trunk@11505 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:38:49 +00:00
akkana%netscape.com
6704e7d531 List Person, People and MailAttach separately to try to unconfuse Linux
git-svn-id: svn://10.0.0.236/trunk@11504 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:36:48 +00:00
akkana%netscape.com
316523feef Add HFolder* to icon list -- help fix Linux build
git-svn-id: svn://10.0.0.236/trunk@11503 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:34:36 +00:00
sudu%netscape.com
d4a78dc325 Moved .cpp files to CPPSRCS from CSRCS. apprvd checkin cyeh
git-svn-id: svn://10.0.0.236/trunk@11502 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:24:03 +00:00
cls%seawood.org
1bad763353 Finished off MOZ_USER_DIR patch. This allows developers to change config-dir at compile time. Defaults to .netscape for classic build and .mozilla for autoconf build.
git-svn-id: svn://10.0.0.236/trunk@11501 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:23:45 +00:00
terry%netscape.com
245c74634f Added admin page for changing of default owners (code by Sam Ziegler <sam@ziegler.org>)
git-svn-id: svn://10.0.0.236/trunk@11500 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:05:25 +00:00
cmanske%netscape.com
24650b9378 Fixed more Composer bugs
git-svn-id: svn://10.0.0.236/trunk@11499 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-30 00:01:40 +00:00
toshok%netscape.com
1a5aca39ee include prsystem.h to fix build
git-svn-id: svn://10.0.0.236/trunk@11498 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:58:54 +00:00
peterl%netscape.com
3a2cfadc61 added nsCSSProps2.cpp
git-svn-id: svn://10.0.0.236/trunk@11497 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:51:47 +00:00
peterl%netscape.com
7a1f51163c added attribute & content changed code
git-svn-id: svn://10.0.0.236/trunk@11496 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:51:28 +00:00
peterl%netscape.com
42c7b6e79f added hint table
moved non-generated code to nsCSSProps2.cpp


git-svn-id: svn://10.0.0.236/trunk@11495 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:50:56 +00:00
cmanske%netscape.com
78ccc9bab1 More Composer bug fixes: Removed password remembering from Publish dialog and removed pixel to % conversion for table and cell widths
git-svn-id: svn://10.0.0.236/trunk@11494 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:50:44 +00:00
peterl%netscape.com
ce18c9d686 added change hint to parse declaration
git-svn-id: svn://10.0.0.236/trunk@11493 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:50:09 +00:00
peterl%netscape.com
6baee6145d added hint to parse delcaration
git-svn-id: svn://10.0.0.236/trunk@11492 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:49:19 +00:00
peterl%netscape.com
2b7136b4b7 added hint to attribute change notification
git-svn-id: svn://10.0.0.236/trunk@11491 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:48:38 +00:00
peterl%netscape.com
9b94d90eca moved attribute change code to style sheete
cleaned up content change api


git-svn-id: svn://10.0.0.236/trunk@11490 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:48:07 +00:00
peterl%netscape.com
cae2faa839 added content & attribute change to style frame construction
cleaned up api


git-svn-id: svn://10.0.0.236/trunk@11489 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:47:03 +00:00
peterl%netscape.com
439691029e added change hints
git-svn-id: svn://10.0.0.236/trunk@11488 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:46:25 +00:00
peterl%netscape.com
67328bc930 routed content & attribute change through style set
routed all style frame construction calls directly to style set


git-svn-id: svn://10.0.0.236/trunk@11487 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:46:05 +00:00
peterl%netscape.com
6796d080ab removed style frame construction methods
git-svn-id: svn://10.0.0.236/trunk@11486 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:44:53 +00:00
peterl%netscape.com
7b5bbd8c57 added change hint to attribute change api
cleaned up content change api


git-svn-id: svn://10.0.0.236/trunk@11485 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:44:25 +00:00
peterl%netscape.com
a6cd5428be added change hint to attribute change api
git-svn-id: svn://10.0.0.236/trunk@11484 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:43:39 +00:00
peterl%netscape.com
6976204834 added content changed & attribute changed to style frame construction api.
cleaned up api.
added attribute change hint.


git-svn-id: svn://10.0.0.236/trunk@11483 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:41:59 +00:00
bjorn%netscape.com
316f030593 Fix for negative values, similar to the one I put into jslock.c. This version
is used when gcc is *not* the compiler.


git-svn-id: svn://10.0.0.236/trunk@11482 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:39:11 +00:00
peterl%netscape.com
777dbb325d made alias font use static strings
git-svn-id: svn://10.0.0.236/trunk@11481 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:38:50 +00:00
valeski%netscape.com
597390284a fixed crasher. whoever did the mass removal of nspr20 #defines removed a necessary routine.
git-svn-id: svn://10.0.0.236/trunk@11480 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:36:58 +00:00
shaver%netscape.com
1af14a8a8d fix sloppy errors in DOM_GetStyleDatabaseFromContext
git-svn-id: svn://10.0.0.236/trunk@11479 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:32:58 +00:00
bjorn%netscape.com
1db1439f26 Additional fix to assembly to accommodate for nv < 0.
git-svn-id: svn://10.0.0.236/trunk@11477 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:31:27 +00:00
karnaze%netscape.com
ea20d275db initial fieldset, legend content classes. minor cleanup on form control content.
git-svn-id: svn://10.0.0.236/trunk@11476 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:22:42 +00:00
shaver%netscape.com
f5c72c7ee3 initialize toplevel <HTML> properly (duh)
git-svn-id: svn://10.0.0.236/trunk@11475 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:22:25 +00:00
buster%netscape.com
a0c05dcfa4 fixed a minor bug in colspan layout
the layout strategy can now query the outer frame for the caption min width,
and use it to expand the table if necessary
did some related cleanup while I was in there.


git-svn-id: svn://10.0.0.236/trunk@11473 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:15:01 +00:00
rjc%netscape.com
3377016e58 Expose support for Shack.
git-svn-id: svn://10.0.0.236/trunk@11472 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:11:32 +00:00
shaver%netscape.com
8d3f61e3ab lock layout when setting up style_db
git-svn-id: svn://10.0.0.236/trunk@11471 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:11:05 +00:00
terry%netscape.com
a738d0ced8 Fixed bug which was stomping on "file" field if there was no dir field
and the file field had no slash.


git-svn-id: svn://10.0.0.236/trunk@11470 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:54:59 +00:00
valeski%netscape.com
5c97f51f8e removed NET_HostName() routine to cut down on size.
git-svn-id: svn://10.0.0.236/trunk@11468 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:52:46 +00:00
valeski%netscape.com
a91fa34c33 removed NET_HostName() call as this routine is no longer implemented.
git-svn-id: svn://10.0.0.236/trunk@11467 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:51:30 +00:00
michaelp%netscape.com
b53c67c4da we only notify the plugin instance via the plugin host and only if the notify
data is non-null.


git-svn-id: svn://10.0.0.236/trunk@11466 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:47:42 +00:00
valeski%netscape.com
373f454837 Added get/set methods to nsINetService interface for http request version manipulation. You can specify whether or not you want 1.1 or 1.0.
git-svn-id: svn://10.0.0.236/trunk@11464 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:43:32 +00:00
akkana%netscape.com
1a84c2242a Turn on MOZ_MAIL_COMPOSE. Approved by Briano
git-svn-id: svn://10.0.0.236/trunk@11463 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:43:22 +00:00
bjorn%netscape.com
017dc6f116 Changed the assertion which used to trigger when nv < 0 in CompareAndSwap.
It now triggers when nv == -1. This is only relevant on a Solaris compiled
for SPARC v8.


git-svn-id: svn://10.0.0.236/trunk@11462 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:42:08 +00:00
despotdaemon%netscape.com
18c2c409a4 Pseudo-automatic update of changes made by harrison@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@11461 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:41:24 +00:00
valeski%netscape.com
7dec1e0b00 initializing line_buffer in build_http_request. added ability to set different http request versions and some optimizations.
git-svn-id: svn://10.0.0.236/trunk@11460 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:40:53 +00:00
kipp%netscape.com
d33943c13b Create table-cell's body as a top-level body so that it doesn't shrink wrap around it's children during pass2 table reflow
git-svn-id: svn://10.0.0.236/trunk@11459 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:36:30 +00:00
gagan%netscape.com
5cb01b63fc NuCache wasn't building on Unix. Fixed.
git-svn-id: svn://10.0.0.236/trunk@11458 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:36:06 +00:00
kipp%netscape.com
70b47dedc6 Better margins
git-svn-id: svn://10.0.0.236/trunk@11457 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:35:24 +00:00
kipp%netscape.com
d280ea2fa3 Parse OL/UL type=A|a|I|i properly
git-svn-id: svn://10.0.0.236/trunk@11456 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:34:30 +00:00
kipp%netscape.com
42942a6501 Removed duplicate adjustment of the width/height; only use max-size-width if width is unconstrained AND it's a top-level body
git-svn-id: svn://10.0.0.236/trunk@11455 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:33:47 +00:00
slamm%netscape.com
f3d387c3e8 Fix build bustage. Put a newline at the end of the file.
git-svn-id: svn://10.0.0.236/trunk@11454 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:33:36 +00:00
kipp%netscape.com
51dce78d05 Add in a bottom-line-margin when dealing with a zero-height line that contains a BR frame
git-svn-id: svn://10.0.0.236/trunk@11453 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:32:56 +00:00
kipp%netscape.com
655a69e6ba Added SetBRFrame/GetBRFrame for handling 0 height line layout and BR's
git-svn-id: svn://10.0.0.236/trunk@11452 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:32:04 +00:00
kipp%netscape.com
4040cf15ce Made BR frames 0,0; inform line layout of presence of the BR frame
git-svn-id: svn://10.0.0.236/trunk@11449 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:31:22 +00:00
rods%netscape.com
fd81e0baf9 Added HWND cast for STRICT compiler problem.
git-svn-id: svn://10.0.0.236/trunk@11448 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:22:30 +00:00
rods%netscape.com
4a16ee4af9 Commented out the setup of the dispatch listener because the AppViewer
doesn't do anything.


git-svn-id: svn://10.0.0.236/trunk@11447 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:18:18 +00:00
rods%netscape.com
3eb99ad5e9 Run method now does an AddRef so it stays alive until the last message can
come through the pump.


git-svn-id: svn://10.0.0.236/trunk@11446 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:16:23 +00:00
jsun%netscape.com
cdab24e124 Renamed more classes from Julian* to nsCal*.
Didn't rename JulianPtrArray, JulianString, JulianFormFactory.


git-svn-id: svn://10.0.0.236/trunk@11445 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:11:18 +00:00
pinkerton%netscape.com
a74837fd01 remove semicolon after #ifdef.
git-svn-id: svn://10.0.0.236/trunk@11444 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:05:27 +00:00
kmcclusk%netscape.com
5f40f50f80 Initialize mFont to nsnull in constructor.
git-svn-id: svn://10.0.0.236/trunk@11443 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 22:01:50 +00:00
cyeh%netscape.com
03c1c646a2 hasta la vista, MOZ_GOLD
git-svn-id: svn://10.0.0.236/trunk@11442 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:57:03 +00:00
cyeh%netscape.com
b71a02dd2c Remove old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@11441 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:55:00 +00:00
pinkerton%netscape.com
1529be322d weak-link against NavServices.
git-svn-id: svn://10.0.0.236/trunk@11440 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:43:27 +00:00
cyeh%netscape.com
0a4f762689 Remove old NSPR20 and MOCHA #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11439 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:35:57 +00:00
kmcclusk%netscape.com
09cba4e0fd Moved common Create(nsIWidget... and Create(nsNativeWidget to a StandardWindowCreate
utility method then call it from each of the Creates.


git-svn-id: svn://10.0.0.236/trunk@11438 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:34:58 +00:00
cyeh%netscape.com
1f2dc12a8e If NSPR20 isn't defined, the makefile wouldn't look in the NSPR header directory.
git-svn-id: svn://10.0.0.236/trunk@11437 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:32:29 +00:00
rods%netscape.com
59628ebaa7 Changed the menu creation code
git-svn-id: svn://10.0.0.236/trunk@11436 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:32:21 +00:00
rods%netscape.com
02f7f7fe9f Reworked all the menu code and removed nsWindow from several classes
git-svn-id: svn://10.0.0.236/trunk@11435 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:30:31 +00:00
gagan%netscape.com
98d3667d0d Wrong version went in. Correcting.
git-svn-id: svn://10.0.0.236/trunk@11434 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:30:00 +00:00
cyeh%netscape.com
344f351c38 Remove old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@11433 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:29:23 +00:00
cyeh%netscape.com
c446d724e8 Remove old NSPR20 #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11432 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:28:25 +00:00
shaver%netscape.com
9b0250bbbe update DOM stuff for new style data, and make DOM_HTMLPushNode do more implicit-pop stuff
git-svn-id: svn://10.0.0.236/trunk@11431 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:23:15 +00:00
gagan%netscape.com
233be11345 Inlined pref accessor/modifiers.
git-svn-id: svn://10.0.0.236/trunk@11430 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:18:53 +00:00
cyeh%netscape.com
9a67de3b3b this file isn't used anymore and is very obsolete
git-svn-id: svn://10.0.0.236/trunk@11429 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:13:14 +00:00
cyeh%netscape.com
5e1e651ec3 Remove old NSPR20 and MOCHA #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11428 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:12:32 +00:00
cyeh%netscape.com
8c4f04d2f1 Remove old NSPR20 #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11427 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 21:02:23 +00:00
cyeh%netscape.com
b699559c9c Removing old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@11426 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 20:59:25 +00:00
nisheeth%netscape.com
b8943d030a Ifdef out support for the window.hardware JS object. If you want support to
get compiled, define NAV_HARDWARE.


git-svn-id: svn://10.0.0.236/trunk@11425 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 20:57:59 +00:00
cyeh%netscape.com
cdf7f130f2 Remove old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@11424 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 20:57:07 +00:00
nisheeth%netscape.com
b25b289a93 Remove support for the window.hardware JS object.
git-svn-id: svn://10.0.0.236/trunk@11423 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 20:56:19 +00:00
cyeh%netscape.com
048c08f8a0 Remove old MOCHA #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11422 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 20:55:21 +00:00
cyeh%netscape.com
b5e3e00b52 Removing old NSPR20 and MOCHA #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11421 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 20:50:44 +00:00
valeski%netscape.com
de0426f574 we're now respecting the "Proxy-Connection: close" header. we used to ignore it and eventually discover that the connection had closed. Now we close it when asked to by the proxy.
git-svn-id: svn://10.0.0.236/trunk@11420 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 20:50:20 +00:00
cyeh%netscape.com
fc5d6ce90b remove extra space at the end of a line. oops.
git-svn-id: svn://10.0.0.236/trunk@11418 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 20:34:33 +00:00
pierre%netscape.com
023c4787b4 removed LTextEdit.cp
removed "cmd/macfe/restext"


git-svn-id: svn://10.0.0.236/trunk@11417 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 20:31:42 +00:00
cyeh%netscape.com
383b90e206 adding modules for each unix fe. long live balkanization.
git-svn-id: svn://10.0.0.236/trunk@11416 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 20:31:01 +00:00
terry%netscape.com
a31855bef6 Don't do server-push if the user seems to be using Internet Explorer.
git-svn-id: svn://10.0.0.236/trunk@11415 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 19:20:59 +00:00
rods%netscape.com
0139444535 Changed casting of HMENU native data
git-svn-id: svn://10.0.0.236/trunk@11413 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 18:32:37 +00:00
cyeh%netscape.com
63f046a38e fix instance of C++ comments in a C file
git-svn-id: svn://10.0.0.236/trunk@11412 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 18:28:53 +00:00
rods%netscape.com
af68a75891 This should fix a casting error for VC++ 5.0 with STRICT
git-svn-id: svn://10.0.0.236/trunk@11411 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:50:50 +00:00
pinkerton%netscape.com
007000962c remove explicit LListener inheritance.
git-svn-id: svn://10.0.0.236/trunk@11410 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:35:23 +00:00
pinkerton%netscape.com
377be07e09 Use Client.mcp for stubs generation. These are now obsolete.
git-svn-id: svn://10.0.0.236/trunk@11409 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:35:12 +00:00
pinkerton%netscape.com
c88b3467ef pro4 namespace stuff.
git-svn-id: svn://10.0.0.236/trunk@11408 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:35:07 +00:00
pinkerton%netscape.com
fa9ab071be remove volatile.
git-svn-id: svn://10.0.0.236/trunk@11407 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:33:46 +00:00
terry%netscape.com
515fccd46a Put in some pointers to dolog.pl.
git-svn-id: svn://10.0.0.236/trunk@11406 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:33:37 +00:00
pinkerton%netscape.com
c656ccfa1d use new menu bar (no more mercutio)
git-svn-id: svn://10.0.0.236/trunk@11405 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:32:35 +00:00
pinkerton%netscape.com
250e6f2dc9 casts to make pro4 compiler happy
git-svn-id: svn://10.0.0.236/trunk@11404 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:32:11 +00:00
pinkerton%netscape.com
680bfd8e92 improper use of volatile
git-svn-id: svn://10.0.0.236/trunk@11403 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:31:52 +00:00
pinkerton%netscape.com
8a95424c44 use LTextEditView
git-svn-id: svn://10.0.0.236/trunk@11402 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:31:30 +00:00
pinkerton%netscape.com
9132e4aeb3 make sure we pick up right header files.
git-svn-id: svn://10.0.0.236/trunk@11401 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:31:08 +00:00
terry%netscape.com
75f55bbc32 Whoops; all the comments at the top got lost somehow. Restore them.
git-svn-id: svn://10.0.0.236/trunk@11400 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:30:55 +00:00
pinkerton%netscape.com
dedb0a861b make sure we pick up the correct defines.
git-svn-id: svn://10.0.0.236/trunk@11399 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:30:47 +00:00
pinkerton%netscape.com
914507e698 new pro4 exports.
git-svn-id: svn://10.0.0.236/trunk@11398 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:30:20 +00:00
pinkerton%netscape.com
b48dca7cec LTextEditView changes.
git-svn-id: svn://10.0.0.236/trunk@11397 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:30:01 +00:00
pinkerton%netscape.com
766c1c52b8 pro4 namespace stuff.
git-svn-id: svn://10.0.0.236/trunk@11396 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:29:34 +00:00
pinkerton%netscape.com
e89d08f8df new stuff from pro4
git-svn-id: svn://10.0.0.236/trunk@11395 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:29:08 +00:00
pinkerton%netscape.com
8aad8aafe6 Carbon fixes (if-def'd)
git-svn-id: svn://10.0.0.236/trunk@11394 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:28:57 +00:00
pinkerton%netscape.com
faaea0cb09 make sure defines are set right.
git-svn-id: svn://10.0.0.236/trunk@11393 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:28:38 +00:00
pinkerton%netscape.com
8ccd2c9870 const changes.
git-svn-id: svn://10.0.0.236/trunk@11392 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:28:24 +00:00
pinkerton%netscape.com
a1893d3501 const changes, LTextEditView changes
git-svn-id: svn://10.0.0.236/trunk@11391 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:28:06 +00:00
pinkerton%netscape.com
8693440d91 carbon fixes.
git-svn-id: svn://10.0.0.236/trunk@11390 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:27:42 +00:00
pinkerton%netscape.com
7e81e40bf7 some carbon stuff and LTextEditView
git-svn-id: svn://10.0.0.236/trunk@11389 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:26:59 +00:00
pinkerton%netscape.com
c2e9744557 fix warnings.
git-svn-id: svn://10.0.0.236/trunk@11388 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:25:45 +00:00
pinkerton%netscape.com
d7ae588afc carbon stuff.
git-svn-id: svn://10.0.0.236/trunk@11387 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:25:31 +00:00
pinkerton%netscape.com
d1810dc5f6 new menubar.
git-svn-id: svn://10.0.0.236/trunk@11386 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:25:13 +00:00
pinkerton%netscape.com
39020bc5b7 get ready for Carbon
git-svn-id: svn://10.0.0.236/trunk@11385 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:24:55 +00:00
pinkerton%netscape.com
7230c61711 Get/SetDescriptorLen changes.
git-svn-id: svn://10.0.0.236/trunk@11384 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:24:42 +00:00
pinkerton%netscape.com
e7bfd07afd pro4 stl changes.
git-svn-id: svn://10.0.0.236/trunk@11383 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:23:55 +00:00
pinkerton%netscape.com
ba1aa5767d add new[] and delete[] and fix other stuff (get rid of flushAlloc, etc)
git-svn-id: svn://10.0.0.236/trunk@11382 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:23:18 +00:00
pinkerton%netscape.com
f5670b3a00 extern C stuff.
git-svn-id: svn://10.0.0.236/trunk@11381 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:22:52 +00:00
pinkerton%netscape.com
d56873e49a use new menubar classes.
git-svn-id: svn://10.0.0.236/trunk@11380 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:22:26 +00:00
pinkerton%netscape.com
169698a260 remove obsolete stuff
git-svn-id: svn://10.0.0.236/trunk@11379 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:21:47 +00:00
pinkerton%netscape.com
fd7f64ffab Fixes for Pro4
git-svn-id: svn://10.0.0.236/trunk@11378 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:21:32 +00:00
pinkerton%netscape.com
6810e5d3d6 const changes for Pro4
git-svn-id: svn://10.0.0.236/trunk@11377 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:20:58 +00:00
pinkerton%netscape.com
cb41010640 fix warnings.
git-svn-id: svn://10.0.0.236/trunk@11376 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:20:41 +00:00
pinkerton%netscape.com
2b8037895e pro4 changes
git-svn-id: svn://10.0.0.236/trunk@11375 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:20:12 +00:00
pinkerton%netscape.com
79b39f86c9 pro4 changes.
git-svn-id: svn://10.0.0.236/trunk@11374 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:20:02 +00:00
pinkerton%netscape.com
63ef7ee5c6 changes for carbon (if-def'd)
git-svn-id: svn://10.0.0.236/trunk@11373 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:19:13 +00:00
pinkerton%netscape.com
fb021adc4a changes for Get/SetDescriptorLen
git-svn-id: svn://10.0.0.236/trunk@11372 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:17:20 +00:00
pinkerton%netscape.com
42b5afb8b0 improper use of volatile.
git-svn-id: svn://10.0.0.236/trunk@11371 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:16:59 +00:00
pinkerton%netscape.com
199c229ba3 use LTextEditView instead of LTextEdit
git-svn-id: svn://10.0.0.236/trunk@11370 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:16:40 +00:00
pinkerton%netscape.com
7abff9be9b Pro4 changes.
git-svn-id: svn://10.0.0.236/trunk@11369 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:16:24 +00:00
pinkerton%netscape.com
49373d9d48 fix link problems on mac.
git-svn-id: svn://10.0.0.236/trunk@11368 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:16:06 +00:00
pinkerton%netscape.com
e2a44faaf3 pull in relevant headers instead of defining things here.
git-svn-id: svn://10.0.0.236/trunk@11367 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:15:46 +00:00
pinkerton%netscape.com
700737ffbe make sure we pull in relevant headers.
git-svn-id: svn://10.0.0.236/trunk@11366 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:15:30 +00:00
pinkerton%netscape.com
3a0fba66de new export file for pro4.
git-svn-id: svn://10.0.0.236/trunk@11365 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:14:28 +00:00
pinkerton%netscape.com
214e438015 No longer pull imagelib off a branch. Generate CarbonLib wrapper project. Use Client.mcp for stubs instead of Navigator (which is obsolete).
git-svn-id: svn://10.0.0.236/trunk@11364 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:13:57 +00:00
pinkerton%netscape.com
c93817715c Make CarbonLib wrapper and use Client.mcp for stubs.
git-svn-id: svn://10.0.0.236/trunk@11363 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:12:49 +00:00
pinkerton%netscape.com
870556b705 Pro4 mods (casts).
git-svn-id: svn://10.0.0.236/trunk@11362 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:11:45 +00:00
pinkerton%netscape.com
2b2c1d0f7c Pro4 and Carbon mods. MacFE only.
git-svn-id: svn://10.0.0.236/trunk@11361 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:11:24 +00:00
pinkerton%netscape.com
c60a24416a Updated projects for Pro4. Turned off mod-date caching for depend builds. Using InterfacesStubs wrapper where appropriate for Carbon.
git-svn-id: svn://10.0.0.236/trunk@11359 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 17:11:00 +00:00
rods%netscape.com
8dc2b2c491 Additional signature changes for XPCOM
git-svn-id: svn://10.0.0.236/trunk@11358 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 16:32:04 +00:00
kipp%netscape.com
5d8504ddc6 Fixed nbsp bug on some win95 systems - it turns out the nbsp wasn't being mapped to space in a few of the compression cases (doh!)
git-svn-id: svn://10.0.0.236/trunk@11357 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 16:24:32 +00:00
rods%netscape.com
4f1f66b39a Changed all the signatures to NS_IMETHOD and NS_METHOD
git-svn-id: svn://10.0.0.236/trunk@11356 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 16:12:15 +00:00
rods%netscape.com
cf6fad9414 Added new interfaces
git-svn-id: svn://10.0.0.236/trunk@11355 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 15:32:04 +00:00
pierre%netscape.com
1e3bd4d855 fixed previous checkin
git-svn-id: svn://10.0.0.236/trunk@11354 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 15:26:03 +00:00
dcone%netscape.com
628c7c4c53 added new files from the xpviewer.
git-svn-id: svn://10.0.0.236/trunk@11353 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 15:16:57 +00:00
pierre%netscape.com
864086668f added nsIToolbarItem.h
git-svn-id: svn://10.0.0.236/trunk@11352 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 15:04:19 +00:00
rods%netscape.com
0127f5a5b8 Fixed the menubars are added to an nsWindow
Fixed last item layout for toolbars


git-svn-id: svn://10.0.0.236/trunk@11351 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 15:01:07 +00:00
cyeh%netscape.com
2834447c49 Removed missing file from the project.
git-svn-id: svn://10.0.0.236/trunk@11350 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 15:00:58 +00:00
wtc%netscape.com
1184dba161 Fixed Linux pthreads build breakage. Define _PR_POLL_AVAILABLE on
glibc systems.


git-svn-id: svn://10.0.0.236/trunk@11349 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 14:28:25 +00:00
rods%netscape.com
09621339cd Changed the menu code to use HMENUs instead of casted HWNDs
git-svn-id: svn://10.0.0.236/trunk@11348 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 14:15:32 +00:00
ramiro%netscape.com
4769f4ed9f Add #ifdef EDITOR around usage of edt_ForceTableSelection() which is only
defined if EDITOR is true.  Fixes the autoconf and MOZ_LITE builds.


git-svn-id: svn://10.0.0.236/trunk@11346 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 09:41:19 +00:00
shaver%netscape.com
0f25c0e2fd fix accidental non-OJI build breakage
git-svn-id: svn://10.0.0.236/trunk@11345 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 09:19:45 +00:00
shaver%netscape.com
6d9d3c85c4 track DOM Makefile changes
git-svn-id: svn://10.0.0.236/trunk@11344 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 09:15:05 +00:00
mcafee%netscape.com
3f145d3dcc Warning segfault possibility with XP_ASSERT(0). (bugzilla:349)
git-svn-id: svn://10.0.0.236/trunk@11341 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 07:28:50 +00:00
mcafee%netscape.com
7faca11f33 Woops backing out that last change.
git-svn-id: svn://10.0.0.236/trunk@11339 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 07:17:23 +00:00
mcafee%netscape.com
1c0aacd028 DU4.0 doesn't like casting to int and then enum. (Bugzilla:334)
git-svn-id: svn://10.0.0.236/trunk@11338 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 07:15:27 +00:00
cmanske%netscape.com
769534c943 Added question mark to save file prompt
git-svn-id: svn://10.0.0.236/trunk@11337 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 07:12:13 +00:00
mcafee%netscape.com
d6c1880df0 Cast needed for DU4.0 (Bugzilla:325)
git-svn-id: svn://10.0.0.236/trunk@11336 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 07:11:22 +00:00
mcafee%netscape.com
415902bd10 Cast needed for DU4.0 (Bugzilla:324)
git-svn-id: svn://10.0.0.236/trunk@11335 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 07:08:35 +00:00
mcafee%netscape.com
4e2d3181a2 Cast needed for DU4.0 (Bugzilla:323)
git-svn-id: svn://10.0.0.236/trunk@11334 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 07:05:31 +00:00
mcafee%netscape.com
3039b56681 Cast needed for DU4.0 (Bugzilla:322)
git-svn-id: svn://10.0.0.236/trunk@11333 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 07:02:39 +00:00
mcafee%netscape.com
2a85878803 Cast needed for DU4.0 (Bugzilla:320)
git-svn-id: svn://10.0.0.236/trunk@11332 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 06:58:21 +00:00
mcafee%netscape.com
bab7cabdaf Cast needed for DU4.0 (Bugzilla:319)
git-svn-id: svn://10.0.0.236/trunk@11331 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 06:55:47 +00:00
mcafee%netscape.com
d1cae73c52 Cast needed for DU4.0 (Bugzilla:318)
git-svn-id: svn://10.0.0.236/trunk@11330 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 06:43:05 +00:00
mcafee%netscape.com
5ca1634a4f Cast needed for DU4.0 (Bugzilla:316)
git-svn-id: svn://10.0.0.236/trunk@11329 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 06:37:03 +00:00
mcafee%netscape.com
3bd5da255c Cast needed for DU4.0 (Bugzilla:312)
git-svn-id: svn://10.0.0.236/trunk@11328 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 06:33:42 +00:00
briano%netscape.com
c0ed029036 Cleaned it up and made it work all platforms, not just the ones that support shared libs.
git-svn-id: svn://10.0.0.236/trunk@11327 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 06:30:14 +00:00
chuckb%netscape.com
f9133c97e8 added readme for 9.28
git-svn-id: svn://10.0.0.236/trunk@11324 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 05:33:50 +00:00
cmanske%netscape.com
9feb48edf3 Fixed Delete command inactive when it should be active
git-svn-id: svn://10.0.0.236/trunk@11323 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 05:26:13 +00:00
chuckb%netscape.com
603b4013e3 Java LDAP SDK 3.5 update
git-svn-id: svn://10.0.0.236/trunk@11322 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 05:16:18 +00:00
cmanske%netscape.com
eb0d2daa7e Fixed bug 123391
git-svn-id: svn://10.0.0.236/trunk@11321 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 05:10:58 +00:00
troy%netscape.com
a5e3d80369 Added back in support for absolutely positioned frames
git-svn-id: svn://10.0.0.236/trunk@11320 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 04:47:59 +00:00
mcafee%netscape.com
e8b72d2289 Missing slash, fixes Linux autoconf breakage. Thanks to <smorrison@gte.com>.
git-svn-id: svn://10.0.0.236/trunk@11319 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 04:36:29 +00:00
cmanske%netscape.com
acd3c39d6b Trying to fix Linux build problems
git-svn-id: svn://10.0.0.236/trunk@11318 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 04:12:14 +00:00
kipp%netscape.com
6b67547955 Changed factory method to parameterize the shrink wrapping behavior
git-svn-id: svn://10.0.0.236/trunk@11317 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 03:44:25 +00:00
cmanske%netscape.com
463bba0b61 Trying to appease fussy UNIX compiler
git-svn-id: svn://10.0.0.236/trunk@11316 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 02:42:30 +00:00
pierre%netscape.com
6ae061e2aa make aliases of broken-image and throbber gifs
git-svn-id: svn://10.0.0.236/trunk@11315 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 02:31:12 +00:00
troy%netscape.com
3847b443ca Fixed some bustage I introduced with the factoring
git-svn-id: svn://10.0.0.236/trunk@11314 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 02:18:09 +00:00
rods%netscape.com
ee09a7ae7a Added more casts to HMENU
git-svn-id: svn://10.0.0.236/trunk@11313 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 02:01:31 +00:00
cmanske%netscape.com
982a1ee908 Trying to fix build problem in Linux
git-svn-id: svn://10.0.0.236/trunk@11312 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 01:36:51 +00:00
rods%netscape.com
30de4ae748 Added NetService to SetupRegistry & made some other changes
git-svn-id: svn://10.0.0.236/trunk@11311 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 01:34:50 +00:00
rods%netscape.com
34fcb9def9 fixed menu casting problem.
git-svn-id: svn://10.0.0.236/trunk@11310 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 01:23:40 +00:00
kostello%netscape.com
7b2f4c649c Synch with Rod's changes to nsIWidget
git-svn-id: svn://10.0.0.236/trunk@11309 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 00:58:32 +00:00
kostello%netscape.com
478b06a76b Synch with Rod's new nsIWidget changes
git-svn-id: svn://10.0.0.236/trunk@11308 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 00:55:17 +00:00
shaver%netscape.com
f189c3d804 the perignon stuff can handle pseudoclasses like a real man, so pass them on
git-svn-id: svn://10.0.0.236/trunk@11307 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 00:40:52 +00:00
norris%netscape.com
6e8507905e Fix bug 325937.
Reviewed by brendan.


git-svn-id: svn://10.0.0.236/trunk@11306 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 00:31:47 +00:00
nisheeth%netscape.com
0d5766018c Defensive programming to avoid crashing on a NULL lo_image added to lo_ImageObserver(). Thanks a lot to ben@algroup.co.uk for reporting this problem and providing a partial fix.
git-svn-id: svn://10.0.0.236/trunk@11305 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 00:24:15 +00:00
pierre%netscape.com
1cc0f19cb7 fix drawing over other apps' windows
git-svn-id: svn://10.0.0.236/trunk@11304 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 00:20:50 +00:00
rods%netscape.com
31701a1151 Added the nsIToolbarItem interface and an additional init member to the interface and class
git-svn-id: svn://10.0.0.236/trunk@11303 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 00:12:09 +00:00
cmanske%netscape.com
d4143501ca Fixed problem with displaying borders in Navigator when we shouldn't
git-svn-id: svn://10.0.0.236/trunk@11302 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 00:02:29 +00:00
shaver%netscape.com
f5b3e91eb2 Wire up Perignon stuff #if DOM.
Remove some unused variables.


git-svn-id: svn://10.0.0.236/trunk@11301 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 23:39:17 +00:00
kipp%netscape.com
3d22089622 nuked
git-svn-id: svn://10.0.0.236/trunk@11300 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 23:32:03 +00:00
pierre%netscape.com
f2f80c5973 fixed crash due to missing {} after if() statement
git-svn-id: svn://10.0.0.236/trunk@11299 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 23:30:17 +00:00
troy%netscape.com
90bec832fd Partially enabled support for absolutely positioned elements
git-svn-id: svn://10.0.0.236/trunk@11298 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 23:24:37 +00:00
buster%netscape.com
59dc161081 minor cleanup, removed references to obsolete table content factory methods.
git-svn-id: svn://10.0.0.236/trunk@11297 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 23:16:39 +00:00
radha%netscape.com
e25e2b0762 Change thei default URL for the htmlpane
git-svn-id: svn://10.0.0.236/trunk@11296 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 23:15:24 +00:00
radha%netscape.com
d6a879b766 Toolbar properties hooked up to RDF. Toolbars get their tooltips from the new
tooltip api


git-svn-id: svn://10.0.0.236/trunk@11295 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 23:14:30 +00:00
radha%netscape.com
2ff37a6646 Really make the selector bar buttons work, so that people outside xfe can use
RDF bookmarks etc....
The images don't show up on the selector bar buttons
for some reason. Shall fix it later.


git-svn-id: svn://10.0.0.236/trunk@11294 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 23:11:12 +00:00
cmanske%netscape.com
e9897123d3 Fixed problem with font list
git-svn-id: svn://10.0.0.236/trunk@11293 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 23:07:42 +00:00
rods%netscape.com
d022499d52 Made changes to get it to come up
git-svn-id: svn://10.0.0.236/trunk@11292 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 23:02:09 +00:00
beard%netscape.com
b4c96d5b82 Moved LiveConnect initialization calls to end of lm_ReallyInitMocha, so that the rest of libmocha will be initialized properly.
git-svn-id: svn://10.0.0.236/trunk@11291 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 22:59:08 +00:00
cmanske%netscape.com
7b44c1ed64 Fixed lots and lots of Composer bugs. Implemented more feedback for mouse-over cursors
git-svn-id: svn://10.0.0.236/trunk@11290 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 22:51:56 +00:00
shaver%netscape.com
af556e9173 - Update Unix make goo to handle our new MOZILLA_CLIENT dependencies.
- Added TODO and STYLE_NOTES
- Added style data to DOM_Element
- Added GetCleanEntryData convenience function
- Added internal dom_SetElementAttribute with optional suppressing of callback
  invocation
- Added style init code
- Style support (everything)
- Fix text initialization thinko


git-svn-id: svn://10.0.0.236/trunk@11289 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 22:51:50 +00:00
cmanske%netscape.com
9ec704b72f Fixed lots of Composer bugs. Implemented delete/copy accross table cell boundaries
git-svn-id: svn://10.0.0.236/trunk@11288 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 22:51:10 +00:00
cmanske%netscape.com
5e503390a1 Added strings and error define for feedback when deleting across table boundary. Added new function prototypes
git-svn-id: svn://10.0.0.236/trunk@11287 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 22:48:43 +00:00
rods%netscape.com
612a7e66b8 Added interfaces
git-svn-id: svn://10.0.0.236/trunk@11286 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 22:37:16 +00:00
pinkerton%netscape.com
6a930c6a40 better fix for iterator problem.
git-svn-id: svn://10.0.0.236/trunk@11285 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 22:34:44 +00:00
pinkerton%netscape.com
2fc9e622cf Fix mac build bustage. Variables declared in the init section of a loop are not valid beyond the scope of the loop (regardless of what VC++ says).
git-svn-id: svn://10.0.0.236/trunk@11284 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 22:33:47 +00:00
rods%netscape.com
e8f77bc7cd XPCOM'ed most methods and added a couple of methods to BaseWidget
and added a lot of files


git-svn-id: svn://10.0.0.236/trunk@11283 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 22:32:48 +00:00
mccabe%netscape.com
b99526dfbb Initial checkin of PerlConnect, migrated from the private tree.
Perlconnect is a set of facilities for controlling and interacting
with a perl interpreter from javascript, and vice versa.  It supplies
several mechanisms for transparently reflecting perl scalars, hashes
and arrays as the corresponding types in javascript.

Currently maintained by Vladimir Livshits, val4@cornell.edu


git-svn-id: svn://10.0.0.236/trunk@11282 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 22:05:39 +00:00
cyeh%netscape.com
590829240e don't dist missing header
git-svn-id: svn://10.0.0.236/trunk@11281 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:53:14 +00:00
terry%netscape.com
9cc6947214 Akkana now owns Composer.
git-svn-id: svn://10.0.0.236/trunk@11280 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:53:08 +00:00
kipp%netscape.com
6e006d63ea Added FIELDSET and LEGEND preliminary support
git-svn-id: svn://10.0.0.236/trunk@11279 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:52:10 +00:00
hyatt%netscape.com
1ebd6fd1be Fixing a bug in the SHACK widget.
git-svn-id: svn://10.0.0.236/trunk@11278 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:43:34 +00:00
cmanske%netscape.com
153828e990 New function supplied by ftang for Composer checking of bad charsets when loading a page
git-svn-id: svn://10.0.0.236/trunk@11277 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:36:23 +00:00
jsun%netscape.com
0ae5282505 Renamed some classes from Julian.* to nsCal.* .
git-svn-id: svn://10.0.0.236/trunk@11276 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:35:33 +00:00
slamm%netscape.com
20210efbde Fix spelling errors.
git-svn-id: svn://10.0.0.236/trunk@11275 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:34:56 +00:00
karnaze%netscape.com
0c85a290ef bugs 642, 643; also removed unused files.
git-svn-id: svn://10.0.0.236/trunk@11274 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:32:24 +00:00
kostello%netscape.com
141b2ee43d Fix bug 658.
Needed to update to nsXIFDTD to match new nsSkippedContentToken API


git-svn-id: svn://10.0.0.236/trunk@11273 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:25:22 +00:00
ramiro%netscape.com
0c4c83e60e Add ClientData.[ch].
git-svn-id: svn://10.0.0.236/trunk@11272 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:22:45 +00:00
vidur%netscape.com
91958a5028 Fixed image.src=. Forwarded AttributeChanged notifications from nsPlaceholderFrame to its anchored item. Got rid of redundant calls to AttributeChanged.
git-svn-id: svn://10.0.0.236/trunk@11271 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:22:31 +00:00
dcone%netscape.com
2e34d13dbf Fixed the growing part of the window, setorigin was messing us up.
git-svn-id: svn://10.0.0.236/trunk@11270 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:08:09 +00:00
akkana%netscape.com
84d23710e9 Hope this syntax might make Linux and Solaris happier
git-svn-id: svn://10.0.0.236/trunk@11269 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 21:01:21 +00:00
cyeh%netscape.com
59c5e14f3a remove old MOCHA #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11268 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:53:23 +00:00
jsun%netscape.com
9d40b2d0da Renamed files with Julian to nsCal.
git-svn-id: svn://10.0.0.236/trunk@11267 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:49:51 +00:00
cyeh%netscape.com
65c201a259 removing old NSPR20 #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11266 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:49:33 +00:00
valeski%netscape.com
62f772cb7b Raptor only. Fix crasher.
git-svn-id: svn://10.0.0.236/trunk@11265 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:47:49 +00:00
jsun%netscape.com
4cde933916 Renamed classes with Julian.* in front to nsCal.*.
git-svn-id: svn://10.0.0.236/trunk@11264 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:47:07 +00:00
jsun%netscape.com
d9b95f11c1 Renamed several classes that had Julian in front.
Changed them to nsCal.
i.e. Julian_Duration -> nsCalDuration.
     JulianRecurrenceID -> nsCalRecurrenceID.


git-svn-id: svn://10.0.0.236/trunk@11263 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:46:22 +00:00
cyeh%netscape.com
46c981f3a0 remove old NSPR20 #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11262 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:45:35 +00:00
gagan%netscape.com
89c84ffbf6 Prefs changes.
git-svn-id: svn://10.0.0.236/trunk@11261 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:42:58 +00:00
cyeh%netscape.com
a8429e9374 removing old NSPR20 #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11260 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:42:14 +00:00
buster%netscape.com
1c6e6e88a1 fixed bug 915. Colgroup frames now get Init() calls properly with
synthesized COLs.


git-svn-id: svn://10.0.0.236/trunk@11259 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:38:10 +00:00
cyeh%netscape.com
5b7e92b84d removing old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@11258 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:38:02 +00:00
kostello%netscape.com
aa8449482e raptor checkin, took out the asserts for reading in a file, just so the viewer will work correctly. While fix this soon.
git-svn-id: svn://10.0.0.236/trunk@11255 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:34:30 +00:00
gagan%netscape.com
b73b3d94c1 Assertion added.
git-svn-id: svn://10.0.0.236/trunk@11254 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:34:28 +00:00
gagan%netscape.com
7bdf6e2c14 Cache Prefs changes. All cache prefs are now read directly by NuCache.
git-svn-id: svn://10.0.0.236/trunk@11253 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:32:40 +00:00
kostello%netscape.com
b78ff88d4e updated the OJI build info
git-svn-id: svn://10.0.0.236/trunk@11252 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:31:11 +00:00
gagan%netscape.com
1d780b327d Prefs changes. All cache preferences are now read directly by NuCache.
git-svn-id: svn://10.0.0.236/trunk@11251 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:30:54 +00:00
cyeh%netscape.com
5f807008d6 removing old NSPR20 and MOCHA #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11250 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:26:20 +00:00
cyeh%netscape.com
0c0e7341ef remove old NSPR20 #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11249 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:22:36 +00:00
cyeh%netscape.com
12f69944f4 remove old #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11248 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:20:42 +00:00
wtc%netscape.com
49d1c3d821 Make 'gmake depend' do a 'gmake clean' temporarily, because I am
going to check in a change to the header file _linux.h and NSPR
makefiles don't implement 'gmake depend'.  I must force the
Tinderbox 'gmake depend' continuous builds to rebuild the files
after the header file change.  I really hate to do this hack but...


git-svn-id: svn://10.0.0.236/trunk@11247 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:19:41 +00:00
cyeh%netscape.com
fd70b163fa remove old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@11246 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:19:24 +00:00
cyeh%netscape.com
30fe8ba751 removing old NSPR20 #ifdefs
git-svn-id: svn://10.0.0.236/trunk@11245 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:17:44 +00:00
cyeh%netscape.com
f4402032d4 removing old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@11244 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:13:36 +00:00
wtc%netscape.com
e372290bb4 Fixed DG/UX build problems in NSPR20 v3.0 beta. The patch is
contributed by Marc J. Fraioli (fraioli@dg-rtp.dg.com).


git-svn-id: svn://10.0.0.236/trunk@11243 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:13:23 +00:00
ramiro%netscape.com
419e35b066 Add TIS-620 charset support. Thanks to Samphan Raruenrom <samphan@thai.com>
for providing the patch.


git-svn-id: svn://10.0.0.236/trunk@11242 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:09:23 +00:00
cyeh%netscape.com
cc400964fa remove old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@11241 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:08:32 +00:00
ramiro%netscape.com
599c292c94 Fix bugzilla bug 885. Compiler warning. Thanks to raff@netwinder.org for
pointing this out and providing a fix.


git-svn-id: svn://10.0.0.236/trunk@11240 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:57:27 +00:00
cyeh%netscape.com
377c0b4ee8 removing old NSPR20 and MOCHA #ifdefs. Sorry for the rebuild.
git-svn-id: svn://10.0.0.236/trunk@11239 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:56:38 +00:00
despotdaemon%netscape.com
db076dcb00 Pseudo-automatic update of changes made by shaver@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@11238 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:51:46 +00:00
ramiro%netscape.com
40727f404b Use new tool tip api.
git-svn-id: svn://10.0.0.236/trunk@11237 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:42:46 +00:00
ramiro%netscape.com
0ad7be3cb8 Update for doc string callbacks.
git-svn-id: svn://10.0.0.236/trunk@11236 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:41:30 +00:00
ramiro%netscape.com
ec4bfbef44 Use the client data manager.
git-svn-id: svn://10.0.0.236/trunk@11234 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:39:44 +00:00
ramiro%netscape.com
6a564862be Add XfeToolTipShellSetString().
git-svn-id: svn://10.0.0.236/trunk@11233 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:38:57 +00:00
ramiro%netscape.com
039e0051cf Make sure child is centered.
git-svn-id: svn://10.0.0.236/trunk@11232 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:37:55 +00:00
kin%netscape.com
bc52ba4678 mozilla/cmd/xfe/resources
mozilla/cmd/xfe/src/EmbeddedEditor.cpp
mozilla/cmd/xfe/src/ComposeView.cpp
  - Modifications to get the insert menu (editorGoodiesMenu), on the embedded
    editor and compose view toolbar, to display text instead of icons.


git-svn-id: svn://10.0.0.236/trunk@11231 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:31:25 +00:00
ftang%netscape.com
e01b6671a1 fix cannot convert cases
git-svn-id: svn://10.0.0.236/trunk@11230 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:24:13 +00:00
ftang%netscape.com
bc29f82bbb move 4.5 fix into mozilla
git-svn-id: svn://10.0.0.236/trunk@11229 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:23:21 +00:00
ramiro%netscape.com
06749a4471 Comment out debug printfs.
git-svn-id: svn://10.0.0.236/trunk@11228 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:09:28 +00:00
akkana%netscape.com
3dc6f3ec61 Lotsa minor bug fixes
git-svn-id: svn://10.0.0.236/trunk@11227 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:09:26 +00:00
ramiro%netscape.com
74ca811e83 Add client data manager.
git-svn-id: svn://10.0.0.236/trunk@11226 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:08:46 +00:00
akkana%netscape.com
a11d6d1880 Eliminate a bunch of warnings
git-svn-id: svn://10.0.0.236/trunk@11225 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 19:06:17 +00:00
kipp%netscape.com
42adeed6a7 Get max-element-size from inline-reflow state and pass it upwards
git-svn-id: svn://10.0.0.236/trunk@11224 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 18:57:28 +00:00
kipp%netscape.com
d7fce242a3 Only set margins if auto/undefined margins are present
git-svn-id: svn://10.0.0.236/trunk@11223 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 18:51:23 +00:00
kipp%netscape.com
6635abfd9a Cleaned up and repaired floater placement and spacemanager manipulation; the comments clearly (hopefully!) state whats going on...
git-svn-id: svn://10.0.0.236/trunk@11222 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 18:50:59 +00:00
kipp%netscape.com
9d96689b75 Setup spacemanager translation correctly
git-svn-id: svn://10.0.0.236/trunk@11221 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 18:50:06 +00:00
rods%netscape.com
26b0390922 Initial checkin
git-svn-id: svn://10.0.0.236/trunk@11220 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 18:02:21 +00:00
dcone%netscape.com
b519e7590e fixed a validrect problem needed for doublebuffer.
Cant call validrect in grow when doublebuffering.  Dont know why yet


git-svn-id: svn://10.0.0.236/trunk@11219 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 17:03:49 +00:00
dcone%netscape.com
bef7dd501e fixed double buffer stuff
git-svn-id: svn://10.0.0.236/trunk@11218 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 17:02:32 +00:00
dcone%netscape.com
49228fb0af fixed some double buffer things
git-svn-id: svn://10.0.0.236/trunk@11217 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 17:02:08 +00:00
rods%netscape.com
0dbf7155a8 Initial Checkin
git-svn-id: svn://10.0.0.236/trunk@11216 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 16:58:20 +00:00
rods%netscape.com
26bdcd45be Initial checkin
git-svn-id: svn://10.0.0.236/trunk@11215 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 16:57:48 +00:00
rods%netscape.com
7e647ddb9d Inial Checkin
git-svn-id: svn://10.0.0.236/trunk@11214 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 16:51:39 +00:00
rods%netscape.com
cd356bc27e Initial checkin
git-svn-id: svn://10.0.0.236/trunk@11213 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 16:32:12 +00:00
ramiro%netscape.com
6d8c13b75d Fix the realization problem so that tooltips can be added at any time whether
a widget, or gadget's parent are realized or not.


git-svn-id: svn://10.0.0.236/trunk@11212 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 11:03:11 +00:00
ramiro%netscape.com
34a324a827 Fix removal of info at item destruction. Fix positioning.
git-svn-id: svn://10.0.0.236/trunk@11211 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 08:11:25 +00:00
mcafee%netscape.com
2650c8148d Fixing more link errors.
git-svn-id: svn://10.0.0.236/trunk@11208 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 07:24:15 +00:00
mcafee%netscape.com
add9d08e27 Added Rhapsody to the long list of OS's that can't handle localtime_r().
git-svn-id: svn://10.0.0.236/trunk@11207 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 07:12:12 +00:00
mcafee%netscape.com
840850d6af Print out not-implemented warnings.
git-svn-id: svn://10.0.0.236/trunk@11206 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 07:06:46 +00:00
mcafee%netscape.com
a772f805cd closer..
git-svn-id: svn://10.0.0.236/trunk@11205 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 07:02:14 +00:00
mcafee%netscape.com
504061f9f5 First real link attempt
git-svn-id: svn://10.0.0.236/trunk@11204 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 06:54:37 +00:00
mcafee%netscape.com
0f4bd530c5 Rhapsody is having trouble linking this with the C++ compiler, linking with cc for now.
git-svn-id: svn://10.0.0.236/trunk@11203 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 06:01:12 +00:00
mcafee%netscape.com
355e72d632 Removing empty export: rule, minor whitespace-tab stuff.
git-svn-id: svn://10.0.0.236/trunk@11202 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 05:42:46 +00:00
mcafee%netscape.com
999f279f03 Removed two local rules, instead relying on global rules in config/rules.mk.
git-svn-id: svn://10.0.0.236/trunk@11201 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 05:37:23 +00:00
mcafee%netscape.com
5e0a3061d0 Missing slash
git-svn-id: svn://10.0.0.236/trunk@11200 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 01:41:50 +00:00
michaelp%netscape.com
529844045a removed libmsgc21.so from link list.
git-svn-id: svn://10.0.0.236/trunk@11199 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 00:28:17 +00:00
michaelp%netscape.com
332e700598 fixes unix build.
git-svn-id: svn://10.0.0.236/trunk@11198 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 23:59:42 +00:00
michaelp%netscape.com
345cf022f8 fix build bustage...
git-svn-id: svn://10.0.0.236/trunk@11197 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 23:49:21 +00:00
michaelp%netscape.com
2ace49bea4 fixes for unix bustage.
git-svn-id: svn://10.0.0.236/trunk@11196 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 23:44:28 +00:00
michaelp%netscape.com
0e5e64e79d hopefully will fix unix builds.
git-svn-id: svn://10.0.0.236/trunk@11195 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 23:30:56 +00:00
michaelp%netscape.com
a285a5c984 changes for new nsiplugininstanceowner.
git-svn-id: svn://10.0.0.236/trunk@11194 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:46:41 +00:00
michaelp%netscape.com
3d73ad1a59 object tag no longer processes it's children (i put troy's change from thursday
in a comment until the parser is sorted out).


git-svn-id: svn://10.0.0.236/trunk@11193 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:44:26 +00:00
michaelp%netscape.com
96fd8bbebe massive changes to support java plugins.
git-svn-id: svn://10.0.0.236/trunk@11192 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:42:48 +00:00
michaelp%netscape.com
6201c85ae3 added "param" atom.
git-svn-id: svn://10.0.0.236/trunk@11191 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:41:01 +00:00
michaelp%netscape.com
54869d3fb6 now reflects our dependence on OJI.
git-svn-id: svn://10.0.0.236/trunk@11190 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:40:10 +00:00
michaelp%netscape.com
00f8d8614f now supports direct draw using MSVC 5.0.
git-svn-id: svn://10.0.0.236/trunk@11189 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:35:54 +00:00
michaelp%netscape.com
5a27630275 obsolete.
git-svn-id: svn://10.0.0.236/trunk@11188 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:25:13 +00:00
michaelp%netscape.com
7c26bd90f5 added support for plugintaginfo2 and jvmtaginfo.
git-svn-id: svn://10.0.0.236/trunk@11187 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:24:54 +00:00
michaelp%netscape.com
d62a69de3c added support for pluginmanager2 methods.
git-svn-id: svn://10.0.0.236/trunk@11186 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:23:19 +00:00
michaelp%netscape.com
8674ae2b1c cleanup. now supports stream "as file" and "as file only." added support
for pluginmanager2 methods (largely stubs). now correctly handles URLNotify().
we noew report our user agent as 5.0. can now load 5.0 style plugins from DLLs
and instantiate them properly.


git-svn-id: svn://10.0.0.236/trunk@11185 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:21:39 +00:00
michaelp%netscape.com
54cd9ac8db removed attribute queries. added ShowStatus().
git-svn-id: svn://10.0.0.236/trunk@11184 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:17:00 +00:00
michaelp%netscape.com
2a0fe8f7ae we no longer consider failures from GetAttributes() or even expect the
plugin host to implement it.


git-svn-id: svn://10.0.0.236/trunk@11183 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:16:00 +00:00
michaelp%netscape.com
ff63394ad3 now properly handles queries for nsIFactory.
git-svn-id: svn://10.0.0.236/trunk@11182 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:14:15 +00:00
michaelp%netscape.com
f96f246d76 now reflect our dependency on OJI.
git-svn-id: svn://10.0.0.236/trunk@11181 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:12:59 +00:00
michaelp%netscape.com
3a2c5dab40 changes to support using OJI with raptor.
git-svn-id: svn://10.0.0.236/trunk@11180 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:11:12 +00:00
michaelp%netscape.com
5c7f29b898 now pulls modules/oji.
git-svn-id: svn://10.0.0.236/trunk@11179 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 22:09:41 +00:00
raman%netscape.com
0f3ebfecae Backing my last checkin
git-svn-id: svn://10.0.0.236/trunk@11174 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 03:15:11 +00:00
cls%seawood.org
a09bfd72e1 Added realclean target.
git-svn-id: svn://10.0.0.236/trunk@11173 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 01:30:07 +00:00
raman%netscape.com
2f8770d562 Fixed the memory leaks during startup
git-svn-id: svn://10.0.0.236/trunk@11172 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 01:22:41 +00:00
raman%netscape.com
e7290b1b56 exit gracefully if gNavCenter is NULL
git-svn-id: svn://10.0.0.236/trunk@11171 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 01:22:03 +00:00
cls%seawood.org
5b3d19ee63 Makes nsinstall not return an error if an intermediate directory already exists.
git-svn-id: svn://10.0.0.236/trunk@11169 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-27 00:02:21 +00:00
pinkerton%netscape.com
931ec67fb2 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@11168 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 23:14:53 +00:00
kipp%netscape.com
982b9a6b49 Fixed mac/unix build problem
git-svn-id: svn://10.0.0.236/trunk@11167 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 22:48:52 +00:00
pinkerton%netscape.com
7cd9153865 *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@11166 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 22:25:10 +00:00
morse%netscape.com
eef70acbcd fix bug 325820
git-svn-id: svn://10.0.0.236/trunk@11165 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 21:46:15 +00:00
kipp%netscape.com
e5172e64c4 Fixed up list ordinal handling so that negatives don't work for roman numerals or for alphabetics, and that alphabetics count properly (a==1); this fixes bugzilla bug#589
git-svn-id: svn://10.0.0.236/trunk@11164 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 20:05:09 +00:00
kipp%netscape.com
6bec50c9d7 Added callback to image loading api
git-svn-id: svn://10.0.0.236/trunk@11163 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 18:36:59 +00:00
kipp%netscape.com
082fcd1838 use image-loader call back to trigger bullet frame reflows
git-svn-id: svn://10.0.0.236/trunk@11162 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 18:36:01 +00:00
kipp%netscape.com
1bf34c11eb Use callback to trigger frame reflows instead of hardwiring in a content-changed reflow
git-svn-id: svn://10.0.0.236/trunk@11161 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 18:35:21 +00:00
kipp%netscape.com
98c2ef3acc Dump client-data too
git-svn-id: svn://10.0.0.236/trunk@11160 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 17:39:54 +00:00
kipp%netscape.com
16f9284c0e Fixed background-image rendering so that when the entire background is not covered by the image the background color can be seen
git-svn-id: svn://10.0.0.236/trunk@11159 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 17:29:10 +00:00
kipp%netscape.com
679b3025ae Use modified css rendering API
git-svn-id: svn://10.0.0.236/trunk@11158 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 17:17:20 +00:00
kipp%netscape.com
557c249643 Support a dx,dy value to adjust origin of image rendering; add in partial support for background-position property
git-svn-id: svn://10.0.0.236/trunk@11157 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 17:16:56 +00:00
kipp%netscape.com
f28e3e4139 Diable body margin for now until rendering problem with background images is resolved
git-svn-id: svn://10.0.0.236/trunk@11156 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 17:15:07 +00:00
kipp%netscape.com
128812b271 Use modified css rendering API; handle background images differently (still not quite right)
git-svn-id: svn://10.0.0.236/trunk@11155 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 17:14:35 +00:00
wtc%netscape.com
8720d10f81 Temporary fix: comment out the exit() wrapper so that at least
Mozilla client builds and runs.  We will fix the wrong exit status
bug or zombie sproc bug later (which the exit() wrapper is for).


git-svn-id: svn://10.0.0.236/trunk@11154 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 14:32:11 +00:00
briano%netscape.com
5767fea1c2 Well, it turns out that gcc 2.8.1 for QNX has problems with error status returned by exit(). Seems to work fine, otherwise. Making the native (Watcom) compiler the default again.
git-svn-id: svn://10.0.0.236/trunk@11153 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 07:57:32 +00:00
wtc%netscape.com
80b381b2fb Temporarily comment out the symbol __exit, which is not found
on all versions of IRIX.


git-svn-id: svn://10.0.0.236/trunk@11152 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 07:28:04 +00:00
cls%seawood.org
3e3af38e98 Ok this time I actually removed libmsgc21.
git-svn-id: svn://10.0.0.236/trunk@11151 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 05:31:30 +00:00
pierre%netscape.com
59e5ec855b added nsJSHTMLFieldSetElement.cpp
git-svn-id: svn://10.0.0.236/trunk@11150 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 05:14:01 +00:00
vidur%netscape.com
3fcbc9e5a5 Added nsIDOMHTMLFieldSetElement.h back into the build...
git-svn-id: svn://10.0.0.236/trunk@11149 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 04:47:34 +00:00
vidur%netscape.com
22d8cb3e59 Added nsHTMLFieldSetElement.cpp back...
git-svn-id: svn://10.0.0.236/trunk@11148 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 04:44:53 +00:00
vidur%netscape.com
c15b4671e2 New DOM file
git-svn-id: svn://10.0.0.236/trunk@11147 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 04:41:59 +00:00
vidur%netscape.com
54f0032c94 New DOM header file...
git-svn-id: svn://10.0.0.236/trunk@11146 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 04:40:46 +00:00
kipp%netscape.com
14ab08a8c0 Backed out fieldset part of build
git-svn-id: svn://10.0.0.236/trunk@11145 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 04:28:35 +00:00
briano%netscape.com
9114d55f91 All Linux variants seem to have zip and unzip in /usr/bin, so no need for the extra ifeq to restrict it to ppc.
git-svn-id: svn://10.0.0.236/trunk@11144 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 03:15:26 +00:00
pierre%netscape.com
b51636a5a6 fixing the mac raptor build: undef some of the Mozilla specific stuff
git-svn-id: svn://10.0.0.236/trunk@11143 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 02:56:36 +00:00
pierre%netscape.com
9f185f2e65 removed mozilla/lib/htmldlgs added earlier today: it was a mistake
git-svn-id: svn://10.0.0.236/trunk@11142 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 02:55:14 +00:00
cls%seawood.org
9f87c5d98a Put libi18n after libmisc and added JAVA_OR_OJI ifdef for libjsj.
git-svn-id: svn://10.0.0.236/trunk@11141 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 02:33:18 +00:00
wtc%netscape.com
6c927fbaea Removed reference to nonexisting test file.
git-svn-id: svn://10.0.0.236/trunk@11140 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 02:28:57 +00:00
wtc%netscape.com
2a8fb8402d poll() doesn't work on some Linux machines, so we go back
to using select().


git-svn-id: svn://10.0.0.236/trunk@11139 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 02:23:06 +00:00
cls%seawood.org
86a4ef438d Removed --enable-nspr. Added check for moc.
git-svn-id: svn://10.0.0.236/trunk@11138 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 02:07:08 +00:00
spider%netscape.com
cbf6d101c2 WIP: Multi-Group View
git-svn-id: svn://10.0.0.236/trunk@11137 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 01:38:23 +00:00
briano%netscape.com
aa7252df55 Minor change to the 'test' commands. QNX breaks if there isn't an else block....
git-svn-id: svn://10.0.0.236/trunk@11136 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 01:30:16 +00:00
briano%netscape.com
47c9aa9a2f Minor tweaks to support QNX 4.24.
git-svn-id: svn://10.0.0.236/trunk@11135 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 01:28:27 +00:00
pierre%netscape.com
73efd633b7 fixing mac raptor build after landing of nspr20 v3: added mozilla/lib/htmldlgs to the checkout & makedist lists
git-svn-id: svn://10.0.0.236/trunk@11134 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 01:27:26 +00:00
pierre%netscape.com
dcd143edf3 fixing the mac raptor build after the landing of nspr20 v3
git-svn-id: svn://10.0.0.236/trunk@11133 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 01:00:00 +00:00
vidur%netscape.com
d188bf56ad More leak fixes
git-svn-id: svn://10.0.0.236/trunk@11132 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 00:44:40 +00:00
kipp%netscape.com
c8d5139b8e Fixed memory leak (bug #910)
git-svn-id: svn://10.0.0.236/trunk@11131 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 00:37:26 +00:00
pierre%netscape.com
ca559d3fdb fixed Mac build: removed nsIDOMHTMLFieldSetElement.h
git-svn-id: svn://10.0.0.236/trunk@11130 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 00:12:49 +00:00
wtc%netscape.com
6682416805 Include <sys/time.h> for the definition of FD_SETSIZE.
git-svn-id: svn://10.0.0.236/trunk@11129 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 00:08:49 +00:00
vidur%netscape.com
8bc093e8e2 Fixed memory leak in style change code
git-svn-id: svn://10.0.0.236/trunk@11128 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 00:06:26 +00:00
wtc%netscape.com
4fde6a01fa Define _PR_POLL_AVAILABLE and _PR_USE_POLL only for glibc2.
git-svn-id: svn://10.0.0.236/trunk@11127 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 00:01:16 +00:00
wtc%netscape.com
5a2946eacf Include <poll.h> instead of <sys/poll.h>. Some machines don't
have <sys/poll.h>.


git-svn-id: svn://10.0.0.236/trunk@11126 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:54:51 +00:00
pierre%netscape.com
52393d10d5 enabled debugger for some new files (nsScrollbar etc...)
git-svn-id: svn://10.0.0.236/trunk@11125 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:54:30 +00:00
cyeh%netscape.com
e3ec535a8f (Actually mlm)
- Remove definition of inline which is breaking linux build


git-svn-id: svn://10.0.0.236/trunk@11124 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:49:30 +00:00
cyeh%netscape.com
361e97bb7a (Actually mlm)
- Fix return of NULL that should be (JSCFResult) 0


git-svn-id: svn://10.0.0.236/trunk@11123 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:48:51 +00:00
cyeh%netscape.com
afb6aafabc (Actually mlm)
- Remove double definition of LMWindowGroup to avoid lossage


git-svn-id: svn://10.0.0.236/trunk@11122 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:48:24 +00:00
kipp%netscape.com
add47d2e83 Added support for percentage base margins to the root, root-content and block frames
git-svn-id: svn://10.0.0.236/trunk@11121 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:47:59 +00:00
kipp%netscape.com
e3fbcae900 Added in support for border/padding/background-* properties for the HTML frame; added support for margin properties on the child of the HTML frame
git-svn-id: svn://10.0.0.236/trunk@11120 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:39:06 +00:00
kipp%netscape.com
8d56d6cc3c Removed scrollbar sizing from body frame
git-svn-id: svn://10.0.0.236/trunk@11119 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:38:30 +00:00
kipp%netscape.com
f296734c02 Added rules to properly setup HTML and BODY and FRAMESET
git-svn-id: svn://10.0.0.236/trunk@11118 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:38:10 +00:00
kipp%netscape.com
4908e00095 Fixed the value of the background-image property when it's not set in the composite background property
git-svn-id: svn://10.0.0.236/trunk@11117 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:35:55 +00:00
cls%seawood.org
d2b277a624 Moved EDITOR ifdefs as moc does not seem to be able to handle ifdef'ing out entire functions.
git-svn-id: svn://10.0.0.236/trunk@11116 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:30:38 +00:00
cls%seawood.org
fab0aaa2cb Removed libmsgc21 from link line. Removed old history files. Removed msg from REQUIRES.
git-svn-id: svn://10.0.0.236/trunk@11115 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:29:27 +00:00
cls%seawood.org
9c0f60d63a Removed libmsgc21 from link line.
git-svn-id: svn://10.0.0.236/trunk@11114 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:25:54 +00:00
vidur%netscape.com
894b6b95ba Added FieldSetElement interface
git-svn-id: svn://10.0.0.236/trunk@11113 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:23:53 +00:00
spider%netscape.com
8349810cb8 Have View look at their Model for deciding how to render
content


git-svn-id: svn://10.0.0.236/trunk@11112 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:13:11 +00:00
rpotts%netscape.com
950d054946 Fix build bustage of MODULAR_NETLIB...
git-svn-id: svn://10.0.0.236/trunk@11111 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 23:08:21 +00:00
kipp%netscape.com
e44efe2be7 Backed out last change since it was too aggressive
git-svn-id: svn://10.0.0.236/trunk@11109 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:53:48 +00:00
troy%netscape.com
8d229a5a6e Moved ContentReplaced() handler code to style system
git-svn-id: svn://10.0.0.236/trunk@11108 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:47:00 +00:00
jsun%netscape.com
7013cde6b8 Remove msgc from link list since not used
git-svn-id: svn://10.0.0.236/trunk@11107 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:33:49 +00:00
rpotts%netscape.com
effed693be Initialized the returned rect in GetBounds() even if the HWND is null. This fixed a reference to uninitialized memory...
git-svn-id: svn://10.0.0.236/trunk@11106 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:26:28 +00:00
rpotts%netscape.com
f7730500f8 Reworked the way that refresh URLs are handled...
git-svn-id: svn://10.0.0.236/trunk@11105 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:25:21 +00:00
rpotts%netscape.com
341298f9e8 Added reference counting to modular netlib Contexts...
git-svn-id: svn://10.0.0.236/trunk@11104 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:24:32 +00:00
rpotts%netscape.com
2f92cab9c9 Added a proxy routine for net_CallexitRoutine(...) so it would be called on the correct thread at the proper time...
git-svn-id: svn://10.0.0.236/trunk@11103 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:24:09 +00:00
dcone%netscape.com
a035d18976 fixed offset problems and parent heiarchy problems
git-svn-id: svn://10.0.0.236/trunk@11102 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:23:58 +00:00
dcone%netscape.com
a377c1f3a3 Added NS_NATIVE_OFFSETX and Y for getnativedata.
Mac needed for the renderingcontext


git-svn-id: svn://10.0.0.236/trunk@11101 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:22:57 +00:00
leaf%mozilla.org
998b16b969 (Actually mlm)
Branch landing: Multithreading libmocha in mozilla.

- Add new file lm_wngrp.c


git-svn-id: svn://10.0.0.236/trunk@11100 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:22:36 +00:00
rpotts%netscape.com
27c06f1cd0 moved the define of NETLIB_THREAD out into config/config.mak
git-svn-id: svn://10.0.0.236/trunk@11099 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:22:32 +00:00
rpotts%netscape.com
21686eca15 changed the call to net_CallExitRoutine to net_CallExitRoutineProxy() so that if netlib is running in its own thread, the call can be dispatched to the correct thread... IF netlib is running in the mozilla thread, net_CallExitRoutine(...) is called directly.
git-svn-id: svn://10.0.0.236/trunk@11098 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:21:50 +00:00
leaf%mozilla.org
28ab23b3c8 (Actually mlm)
Branch landing: Multithreading libmocha in mozilla.

- Remove lm_crippled_context from export list.


git-svn-id: svn://10.0.0.236/trunk@11097 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:21:40 +00:00
dcone%netscape.com
4af1230f05 Added setorigin to init and destructor
git-svn-id: svn://10.0.0.236/trunk@11096 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:19:54 +00:00
rpotts%netscape.com
69c68ff50f Added a reference count field to MWContext when MODULAR_NETLIB is defined. This is necessary because MWContexts are now shared by multiple threads...
git-svn-id: svn://10.0.0.236/trunk@11095 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:19:50 +00:00
rpotts%netscape.com
551891377c Added a define for NETLIB_THREAD when the MODULAR_NETLIB environment variable is defined
git-svn-id: svn://10.0.0.236/trunk@11094 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:18:43 +00:00
mlm%netscape.com
5654ab2b30 Branch landing: Multithreading libmocha in mozilla.
- Add context parameter to LM_LockJS and friends.


git-svn-id: svn://10.0.0.236/trunk@11092 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:12:33 +00:00
mlm%netscape.com
4e157f4183 Branch landing: Multithreading libmocha in mozilla.
- Move jscookie.h to include directory.
- Add JS_BeginRequest and JS_EndRequest for thread safety.


git-svn-id: svn://10.0.0.236/trunk@11091 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:11:47 +00:00
mlm%netscape.com
1b4059094b Branch landing: Multithreading in mozilla.
- Move JSCF_Execute to the mocha thread.
- Add JS_BeginRequest and JS_EndRequest for thread safety.


git-svn-id: svn://10.0.0.236/trunk@11090 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:10:49 +00:00
mlm%netscape.com
31361a78d0 Branch landing: Multithreading libmocha in mozilla.
- Remove reference to lm_crippled_context; add an accessor function instead.


git-svn-id: svn://10.0.0.236/trunk@11088 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:09:58 +00:00
mlm%netscape.com
039d692684 Branch landing: Multithreading libmocha in mozilla.
- Add cx parameter to LM_LockJS and friends.


git-svn-id: svn://10.0.0.236/trunk@11087 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:09:03 +00:00
mlm%netscape.com
4486571061 Branch landing: Multithreading libmocha in mozilla.
- Add JS_BeginRequest and JS_EndRequest calls
- Add context parameters to some functions


git-svn-id: svn://10.0.0.236/trunk@11086 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:08:28 +00:00
mlm%netscape.com
e8755f7471 Branch landing: Multithreading libmocha in mozilla.
- Add JS_BeginRequest() and JS_EndRequest() to make sure contexts don't
   stomp on each other.


git-svn-id: svn://10.0.0.236/trunk@11085 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:07:48 +00:00
michaelp%netscape.com
48c90e8167 New style test
git-svn-id: svn://10.0.0.236/trunk@11084 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:07:41 +00:00
mlm%netscape.com
3d33759927 Branch landing: Multithreading libmocha in mozilla.
- Add context parameter to LM_LockJS and friends.


git-svn-id: svn://10.0.0.236/trunk@11083 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:06:47 +00:00
mlm%netscape.com
8dd7bb2efd Branch landing: Multithreading in libmocha.
- Add parameters to LM_LockJS and friends.


git-svn-id: svn://10.0.0.236/trunk@11082 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:06:09 +00:00
mlm%netscape.com
5ae966a47b Branch landing: Multithreading libmocha in mozilla.
- New file to toss contexts into thread group lists and otherwise deal
   with multithreading data.


git-svn-id: svn://10.0.0.236/trunk@11081 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:05:22 +00:00
mlm%netscape.com
a7c8885a86 Branch landing: Multithreading libmocha in mozilla.
- Add multiple window groups to allow windows to execute JS on
   different threads.
- Add new context parameters to JS and libmocha functions for thread
   safety.


git-svn-id: svn://10.0.0.236/trunk@11080 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:04:34 +00:00
mlm%netscape.com
7d803aaedd Branch landing: Multithreading libmocha in mozilla.
- Change semantics of LM_LockJS to add context parameter.


git-svn-id: svn://10.0.0.236/trunk@11079 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:03:37 +00:00
mlm%netscape.com
aa0f94398c Branch landing: Multithreading libmocha in mozilla.
- Add casts to make -DJS_THREADSAFE work.


git-svn-id: svn://10.0.0.236/trunk@11078 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:02:47 +00:00
mlm%netscape.com
6b810bf31d Branch landing: Multithreading libmocha in mozilla.
- Add -DJS_THREADSAFE


git-svn-id: svn://10.0.0.236/trunk@11077 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:02:19 +00:00
mlm%netscape.com
c4e91102b0 Branch landing: Multithreading libmocha in mozilla.
- Add jscookie.h
- Move JSCF_ function to mocha thread for thread safety.
- Add functions to libevent.h to deal with multiple window groups.
- Add functions to libmocha.h to deal with multiple window groups.


git-svn-id: svn://10.0.0.236/trunk@11076 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:01:25 +00:00
mlm%netscape.com
8a333e014d Branch landing: Multithreading in mozilla.
- Add -DJS_THREADSAFE to builds.


git-svn-id: svn://10.0.0.236/trunk@11075 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 22:00:13 +00:00
mlm%netscape.com
9cc4047100 Branch landing: Multithreading in mozilla.
- Add -DJS_THREADSAFE and new file lm_wngrp.c.


git-svn-id: svn://10.0.0.236/trunk@11074 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 21:59:47 +00:00
toshok%netscape.com
dbf9441ea1 package is addresscard, not AddressCard
git-svn-id: svn://10.0.0.236/trunk@11073 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 21:25:57 +00:00
cyeh%netscape.com
c464bea451 removing obsolete project files
git-svn-id: svn://10.0.0.236/trunk@11072 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 21:18:14 +00:00
toshok%netscape.com
4efdbecf72 package is addresscard, not AddressCard
git-svn-id: svn://10.0.0.236/trunk@11068 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 21:14:20 +00:00
spider%netscape.com
efa1dde27d Shutdown Inet
git-svn-id: svn://10.0.0.236/trunk@11067 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 21:07:57 +00:00
spider%netscape.com
e7b9dd730e Fix for latest raptor code
git-svn-id: svn://10.0.0.236/trunk@11066 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 20:55:26 +00:00
wtc%netscape.com
4b4994d255 Removed unused macro and enum constant definitions.
git-svn-id: svn://10.0.0.236/trunk@11065 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 20:38:11 +00:00
wtc%netscape.com
c0b3e1fb5a NSPR20 v3.0 beta landing from NSPRPUB_RELEASE_3_0_LANDING_BRANCH.
git-svn-id: svn://10.0.0.236/trunk@11064 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 20:34:39 +00:00
morse%netscape.com
f34368eb6a fix up wording for single signon
git-svn-id: svn://10.0.0.236/trunk@11063 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 20:11:05 +00:00
kipp%netscape.com
08a576b7dc Hooked up width/height attributes to style changed reflow
git-svn-id: svn://10.0.0.236/trunk@11062 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 18:25:20 +00:00
kipp%netscape.com
2d8ee39707 Setup repository so that netlib will work
git-svn-id: svn://10.0.0.236/trunk@11061 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 18:18:09 +00:00
kipp%netscape.com
c1117c47db Made SkipRuleSet actually work
git-svn-id: svn://10.0.0.236/trunk@11060 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 18:17:48 +00:00
kipp%netscape.com
194d9f3a48 new
git-svn-id: svn://10.0.0.236/trunk@11059 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 18:17:07 +00:00
rogerl%netscape.com
e47ccc415b Oops, checked in a call to decompileFunctionBody which was for debugging
purposes only.


git-svn-id: svn://10.0.0.236/trunk@11058 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 18:10:27 +00:00
ramiro%netscape.com
c64125cb32 Add comment
git-svn-id: svn://10.0.0.236/trunk@11057 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 18:06:15 +00:00
ramiro%netscape.com
564f6b97d8 Adding QtMozilla to repository (qtfe).
git-svn-id: svn://10.0.0.236/trunk@11056 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 18:04:00 +00:00
spider%netscape.com
b6ec3a6450 Modularized Julian now resided in Zulu
git-svn-id: svn://10.0.0.236/trunk@11055 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 17:58:12 +00:00
kipp%netscape.com
cdf708174f Resurrected tests
git-svn-id: svn://10.0.0.236/trunk@11054 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 17:55:03 +00:00
kipp%netscape.com
9cf94d314b Added tests back into the build
git-svn-id: svn://10.0.0.236/trunk@11053 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 17:54:48 +00:00
kipp%netscape.com
d09c4a01e4 Removed silly SIDE #define
git-svn-id: svn://10.0.0.236/trunk@11052 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 17:50:53 +00:00
kipp%netscape.com
973e769864 Support break-before/after for block frames
git-svn-id: svn://10.0.0.236/trunk@11051 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 17:50:09 +00:00
ramiro%netscape.com
d5ffdf24fe Fix busted build. Dont return a value for a void function.
git-svn-id: svn://10.0.0.236/trunk@11050 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 17:31:36 +00:00
kipp%netscape.com
5c11554cef Don't block incremental loading reflows because of mInMonolithicContainer (it was necessary early on, now it isn't)
git-svn-id: svn://10.0.0.236/trunk@11049 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 17:30:59 +00:00
sman%netscape.com
f35512299b use supplied date range rather than precalculated dates
git-svn-id: svn://10.0.0.236/trunk@11048 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 17:07:58 +00:00
kipp%netscape.com
487b69be96 Removed some dead crud and implemented AttributeChanged
git-svn-id: svn://10.0.0.236/trunk@11047 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 16:35:01 +00:00
kipp%netscape.com
6494f143f9 Support style changes for leaf frames
git-svn-id: svn://10.0.0.236/trunk@11046 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 16:33:38 +00:00
saari%netscape.com
60d87886da This should fix the burning Mac tree...
git-svn-id: svn://10.0.0.236/trunk@11045 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 16:29:55 +00:00
saari%netscape.com
3573cd6a6a next step in fixing the tree
git-svn-id: svn://10.0.0.236/trunk@11044 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 16:23:07 +00:00
kipp%netscape.com
6bf24eee8e Renamed FrameDeleted to FrameRemoved
git-svn-id: svn://10.0.0.236/trunk@11043 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 16:12:13 +00:00
kipp%netscape.com
414858d8e8 Renamed style-changed reflow method; fixed implementation to generate a reflow command
git-svn-id: svn://10.0.0.236/trunk@11042 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 16:11:36 +00:00
kipp%netscape.com
5c2bb7fdc6 Switch over to FrameRemoved instead of FrameDeleted
git-svn-id: svn://10.0.0.236/trunk@11041 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 16:10:49 +00:00
kipp%netscape.com
97462690f6 Support (weakly) style-changed reflow and fixup naming of frame-removed methods
git-svn-id: svn://10.0.0.236/trunk@11040 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 16:10:10 +00:00
kipp%netscape.com
e8d5d6f05d Added StyleChanged reflow command; renamed FrameDeleted to be consistent with everything else
git-svn-id: svn://10.0.0.236/trunk@11039 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 16:09:04 +00:00
saari%netscape.com
784b153508 One more step in fixing the burning tree
git-svn-id: svn://10.0.0.236/trunk@11038 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 16:08:48 +00:00
dcone%netscape.com
7cd8b2a49d updated resize
git-svn-id: svn://10.0.0.236/trunk@11037 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 15:13:29 +00:00
dcone%netscape.com
74febbdf92 fixed some resizing issues
git-svn-id: svn://10.0.0.236/trunk@11036 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 15:12:55 +00:00
dcone%netscape.com
2fbb21a5f0 fixed resizing issues
git-svn-id: svn://10.0.0.236/trunk@11035 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 15:12:22 +00:00
dcone%netscape.com
34f4d1198e fixed some sizing issues
git-svn-id: svn://10.0.0.236/trunk@11034 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 15:12:05 +00:00
saari%netscape.com
16653a269a MacOS only
Modifications to StringLib. It now functions like the Unix version where we have all of the strings in a giant case statement instead of in resources. 

This is necessary for moving to Pro4 and reducing the number of resources in the Mac Navigator.


git-svn-id: svn://10.0.0.236/trunk@11033 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 14:45:53 +00:00
ramiro%netscape.com
3c05de4713 dgux is now DGUX. Thanks to fraioli@dg-rtp.dg.com (Marc J. Fraioli) for
pointing this out.


git-svn-id: svn://10.0.0.236/trunk@11032 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 14:00:00 +00:00
ramiro%netscape.com
5807949b88 Restore the resources to non const. const was causing problems on some
platforms.  Thanks to "Marc J. Fraioli" <fraioli@dg-rtp.dg.com> for pointing
this out.


git-svn-id: svn://10.0.0.236/trunk@11031 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 11:38:07 +00:00
mcafee%netscape.com
5324f744e6 Uninitialized variable warning from gcc
git-svn-id: svn://10.0.0.236/trunk@11030 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 10:47:56 +00:00
mcafee%netscape.com
11448daeb1 More PostScript font names, courtesy <junker@jazz.snu.ac.kr>
git-svn-id: svn://10.0.0.236/trunk@11029 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 10:24:16 +00:00
mcafee%netscape.com
97f42bd09f Added support for paper size, thanks to <junker@jazz.snu.ac.kr> for this fix
git-svn-id: svn://10.0.0.236/trunk@11028 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 10:23:01 +00:00
mcafee%netscape.com
098ffb5bfa Unix Non-latin1 PostScript conversion enhancement, thanks to <junker@jazz.snu.ac.kr> for providing this fix. Details of the fix are at http://jazz.snu.ac.kr/~junker/work/mozilla/unixps.html. Non-latin1 title printing in xl_annotate_page. Give charset info and URL in postscript output. Give attribute info in postscript output. Give papersize info in DSC comment. Be more liberal in parsing AFM files. Non-latin1 underline and strikeout decoration enabled. Japanese printing charset is fixed to SJIS(in resource file).
git-svn-id: svn://10.0.0.236/trunk@11027 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 10:21:50 +00:00
mcafee%netscape.com
46fbd47212 Moved N_FONTS, PS_BBox, PS_CharInfo, PS_FontInfo to include/xlate.h, added XP_ParseAFMFile() to xlate.h
git-svn-id: svn://10.0.0.236/trunk@11026 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 10:19:18 +00:00
mcafee%netscape.com
45d2cd99d5 Added parseAFM.c
git-svn-id: svn://10.0.0.236/trunk@11025 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 10:17:52 +00:00
mcafee%netscape.com
f1617557ac Initial version, thanks to <junker@jazz.snu.ac.kr> for providing this pd source from Adobe.
git-svn-id: svn://10.0.0.236/trunk@11024 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 10:16:57 +00:00
pinkerton%netscape.com
d4c55cfc35 vidur's dom/css changes. Got the rest of them, I hope. Added new grouping (css) and all the files in dom:src:css.
git-svn-id: svn://10.0.0.236/trunk@11023 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 06:19:02 +00:00
pinkerton%netscape.com
cc455f7e52 vidur's dom/css changes. Added a couple of new files.
git-svn-id: svn://10.0.0.236/trunk@11022 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 05:22:06 +00:00
pinkerton%netscape.com
f9389463bb add dom:public:css to manifest list.
git-svn-id: svn://10.0.0.236/trunk@11021 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 05:21:27 +00:00
troy%netscape.com
be32dfbcc4 Moved ContentDeleted() document notification code to the style system which
generates the reflow command


git-svn-id: svn://10.0.0.236/trunk@11020 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 05:13:06 +00:00
wtc%netscape.com
4aaac00988 Removed the inclusion of private NSPR header "prosdep.h" on the Mac.
Reviewed and approved by Warren Harris.


git-svn-id: svn://10.0.0.236/trunk@11019 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 04:43:58 +00:00
wtc%netscape.com
d4861241b8 Removed calls to the obsolete function PR_GetGCInfo(). That function
is only for Java garbage collection and so doesn't matter any more.
Reviewed and approved by Steve Dagley.


git-svn-id: svn://10.0.0.236/trunk@11018 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 04:42:21 +00:00
wtc%netscape.com
43f79c5880 Removed references to the unused libmsgc21 library.
Reviewed and approved by David Hyatt and Daniel Matejka.


git-svn-id: svn://10.0.0.236/trunk@11016 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 04:35:40 +00:00
peterl%netscape.com
ad7699672b handle HTML comment tags as whitespace
git-svn-id: svn://10.0.0.236/trunk@11013 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 01:50:51 +00:00
peterl%netscape.com
a0cc8381c3 fixed bug preventing properties from parsing if followed by whitespace.
ie: color : blue didn't work


git-svn-id: svn://10.0.0.236/trunk@11012 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 01:50:34 +00:00
peterl%netscape.com
445ae993ad removed table default values
git-svn-id: svn://10.0.0.236/trunk@11011 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 01:49:27 +00:00
peterl%netscape.com
f90a6c8656 performance tweaks to apply style change
git-svn-id: svn://10.0.0.236/trunk@11010 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 01:49:10 +00:00
peterl%netscape.com
8026395a26 removed content apis from style context
git-svn-id: svn://10.0.0.236/trunk@11009 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 01:48:22 +00:00
vidur%netscape.com
191acee8d0 Fix build bustage
git-svn-id: svn://10.0.0.236/trunk@11008 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 01:27:44 +00:00
vidur%netscape.com
446f29bffe style test
git-svn-id: svn://10.0.0.236/trunk@11007 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 00:59:01 +00:00
eyork%netscape.com
563a20a8f5 Fix Solaris Build problems
git-svn-id: svn://10.0.0.236/trunk@11005 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 00:57:28 +00:00
eyork%netscape.com
006e394f93 Fix Solaris Build Problem
git-svn-id: svn://10.0.0.236/trunk@11004 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 00:54:04 +00:00
eyork%netscape.com
0a4ce1b600 Fix Solaris build problem
git-svn-id: svn://10.0.0.236/trunk@11003 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 00:52:46 +00:00
vidur%netscape.com
ae2d56cabc Added new style interfaces. Implemented getStyle() on HTMLElement. Moved DOM fields into side struct for nsGenericHTMLElement. Implemented style declaration interface on proxy. Added new entry point to CSSParser and new methods to style declaration.
git-svn-id: svn://10.0.0.236/trunk@11002 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 00:51:45 +00:00
vidur%netscape.com
5e8d2d6415 Added new style interfaces. Modified property slot id allocation.
git-svn-id: svn://10.0.0.236/trunk@11001 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 00:49:44 +00:00
cyeh%netscape.com
d09199c9f8 remove crusty old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@11000 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 00:30:06 +00:00
kipp%netscape.com
51957b7f8f Fixed attribute atom typo
git-svn-id: svn://10.0.0.236/trunk@10999 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 00:01:08 +00:00
kipp%netscape.com
386e7b39df Added some attribute handlers for inline frames (temporary)
git-svn-id: svn://10.0.0.236/trunk@10998 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 00:00:55 +00:00
kipp%netscape.com
dfee384cdd Added methods for triggering style/rendering/reflow changes
git-svn-id: svn://10.0.0.236/trunk@10997 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-25 00:00:22 +00:00
kipp%netscape.com
cc2b0a1cf8 Hooked up noshade attribute to trigger a render
git-svn-id: svn://10.0.0.236/trunk@10996 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:57:01 +00:00
kipp%netscape.com
f316e65b76 Disable a certain kind of caching to make incremental style changes work
git-svn-id: svn://10.0.0.236/trunk@10995 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:56:45 +00:00
kipp%netscape.com
70a8128e14 Expose remap method
git-svn-id: svn://10.0.0.236/trunk@10994 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:56:30 +00:00
kipp%netscape.com
fa13ca7bfd Added in an immedate flag for controlling Invalidate rendering
git-svn-id: svn://10.0.0.236/trunk@10993 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:56:15 +00:00
kipp%netscape.com
3aec276c63 Exposed a new method
git-svn-id: svn://10.0.0.236/trunk@10992 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:55:48 +00:00
pierre%netscape.com
4cab2fc81b fixing Mac raptor build: define XP_ERRNO only ifndef'd
git-svn-id: svn://10.0.0.236/trunk@10991 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:54:31 +00:00
pinkerton%netscape.com
a2804d24b5 use system mdef instead of mercutio for all menus.
git-svn-id: svn://10.0.0.236/trunk@10990 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:45:17 +00:00
pinkerton%netscape.com
f7b9865a2e changed all menus that used mercutio to use system mdef instead.
git-svn-id: svn://10.0.0.236/trunk@10989 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:44:43 +00:00
pinkerton%netscape.com
26abd44281 Change all menus that used mercutio to use system mdef. Added some xmnu to begin support of shift/cmd accelerators.
git-svn-id: svn://10.0.0.236/trunk@10988 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:44:10 +00:00
pinkerton%netscape.com
6aaf8fa7da make all menus that used Mercutio now use system MDEF.
git-svn-id: svn://10.0.0.236/trunk@10987 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:43:04 +00:00
hyatt%netscape.com
f76bab1497 Bug fix for dialogs popping up out of popup windows.
git-svn-id: svn://10.0.0.236/trunk@10985 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:35:03 +00:00
pinkerton%netscape.com
c1cbae5646 Replace menus that used mercutio with system MDEF.
git-svn-id: svn://10.0.0.236/trunk@10984 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:32:46 +00:00
pinkerton%netscape.com
046d358f03 Make all menus use the system MDEF not Mercutio.
git-svn-id: svn://10.0.0.236/trunk@10982 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:30:01 +00:00
peterl%netscape.com
67dd35cbe9 cleaned up markup to match descriptions
added text decoration color test


git-svn-id: svn://10.0.0.236/trunk@10981 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:28:10 +00:00
pierre%netscape.com
0db2849d84 checkout cmd/macfe/applevnt + central + gui + include + pch + projects+ utility instead of the whole cmd/macfe folder
git-svn-id: svn://10.0.0.236/trunk@10980 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:27:22 +00:00
cyeh%netscape.com
06b17102af add more mac directories to Raptor
git-svn-id: svn://10.0.0.236/trunk@10979 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:24:39 +00:00
kostello%netscape.com
7cda5258ba Removed:
nsHTMLContent.cpp
nsHTMLTagContent.cpp
nsHTMLContainer.cpp
nsDOMAttributes.cpp
nsDOMIterator.cpp
nsDOMNodeList.cpp


git-svn-id: svn://10.0.0.236/trunk@10978 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:18:32 +00:00
pierre%netscape.com
f780ed3335 fixing Mac raptor build: include xp_sock.h
git-svn-id: svn://10.0.0.236/trunk@10977 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:08:56 +00:00
pierre%netscape.com
391708a77c added xp_sock.h
git-svn-id: svn://10.0.0.236/trunk@10976 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 23:07:15 +00:00
pinkerton%netscape.com
7974321fff fix mac raptor: removed nsHTMLbullet.cpp; exchanged html/forms files with their counterparts ending in Frame.
git-svn-id: svn://10.0.0.236/trunk@10974 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 22:30:05 +00:00
pinkerton%netscape.com
e726c44723 fix mac raptor, added nsTraceRefcnt.cpp
git-svn-id: svn://10.0.0.236/trunk@10973 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 22:29:09 +00:00
akkana%netscape.com
10411b6036 Remove rosetta references from mail compose code
git-svn-id: svn://10.0.0.236/trunk@10972 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:46:32 +00:00
mcafee%netscape.com
4b56adf362 Check for null pointer; print context doesn't have history. r=morse,nisheeth
git-svn-id: svn://10.0.0.236/trunk@10971 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:41:53 +00:00
kipp%netscape.com
703b38ab21 Implement revised nsIDocument/nsIDocumentObserver methods
git-svn-id: svn://10.0.0.236/trunk@10970 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:39:47 +00:00
kipp%netscape.com
6beaa547d6 changed frame remove methods
git-svn-id: svn://10.0.0.236/trunk@10969 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:39:29 +00:00
kipp%netscape.com
84501778aa XPCOM'ized the notification methods; changed frame remove methods; added AttributeChanged
git-svn-id: svn://10.0.0.236/trunk@10968 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:39:16 +00:00
kipp%netscape.com
49b247a64d nuked
git-svn-id: svn://10.0.0.236/trunk@10967 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:38:05 +00:00
kipp%netscape.com
3e2105525b Fixed up includes to not depend on old content model classes
git-svn-id: svn://10.0.0.236/trunk@10966 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:37:45 +00:00
kipp%netscape.com
e43f0e122c Added bullet pseudo-style
git-svn-id: svn://10.0.0.236/trunk@10965 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:36:21 +00:00
kipp%netscape.com
966b872fec Eliminate SetAttr/UnsetAttr; use standard 3arg version now; leave the attribute impl macros alone for now; pass on attribute changes to the document when aNotify is PR_TRUE
git-svn-id: svn://10.0.0.236/trunk@10964 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:35:52 +00:00
kipp%netscape.com
cd7a6e5c31 Pass through notify argument with UnsetAttribute method
git-svn-id: svn://10.0.0.236/trunk@10963 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:34:56 +00:00
kipp%netscape.com
2a6880e526 Removed unused include
git-svn-id: svn://10.0.0.236/trunk@10962 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:34:31 +00:00
kipp%netscape.com
0a83117a07 Updated UnsetAttribute to have a notification flag
git-svn-id: svn://10.0.0.236/trunk@10961 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:33:56 +00:00
kipp%netscape.com
0740c45e9d Fixed code to not depend on a (bad!) cast and instead use query-interface
git-svn-id: svn://10.0.0.236/trunk@10960 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:33:20 +00:00
kipp%netscape.com
f5c05399de Removed bullet pseudo-content and instead use pseudo style to process bullets properly
git-svn-id: svn://10.0.0.236/trunk@10959 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:32:39 +00:00
kipp%netscape.com
bd52764a22 Added bullet pseudo style attribute
git-svn-id: svn://10.0.0.236/trunk@10958 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:32:12 +00:00
kipp%netscape.com
c51f486001 Removed old source files from the build
git-svn-id: svn://10.0.0.236/trunk@10957 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:31:43 +00:00
cyeh%netscape.com
60913d7647 removing old NSPR20 #ifdefs
git-svn-id: svn://10.0.0.236/trunk@10956 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:13:36 +00:00
slamm%netscape.com
607fbc6afc Backout accidental checkin.
git-svn-id: svn://10.0.0.236/trunk@10955 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:13:24 +00:00
terry%netscape.com
b7913bd532 Fixed bug 890. Apparently, Apache has the habit of lower-casing some
of the boundary strings, so we'll just lower-case them all to make
things work.


git-svn-id: svn://10.0.0.236/trunk@10954 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:12:46 +00:00
slamm%netscape.com
a2b4be9279 Back out accidental checkin.
git-svn-id: svn://10.0.0.236/trunk@10953 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:10:14 +00:00
cyeh%netscape.com
1181ba7080 remove old MOCHA and NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@10952 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:09:58 +00:00
cyeh%netscape.com
b5597b73c2 remove old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@10951 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 21:01:00 +00:00
beard%netscape.com
c4e831c8b9 Added #undef of NS_EXPORT, so it won't conflict with nsCom.h.
git-svn-id: svn://10.0.0.236/trunk@10950 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:56:58 +00:00
hyatt%netscape.com
8a95a1cd77 Fix to the title bar drawing code so that the Win98 gradient fill is used.
git-svn-id: svn://10.0.0.236/trunk@10949 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:54:52 +00:00
cyeh%netscape.com
2f10b69f3e removing old NSPR20 #ifdefs
git-svn-id: svn://10.0.0.236/trunk@10947 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:47:57 +00:00
cyeh%netscape.com
37085171b5 removing old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@10946 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:36:57 +00:00
troy%netscape.com
5fe4f60324 Added call to ProcessChildren() for OBJECT tag
git-svn-id: svn://10.0.0.236/trunk@10945 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:35:59 +00:00
cyeh%netscape.com
66dc92cb7c remove old NSPR20 #ifdef
git-svn-id: svn://10.0.0.236/trunk@10944 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:35:44 +00:00
blizzard%appliedtheory.com
4cbd36c8b5 Add changes from Michael O'Reilly <michael@metal.iinet.net.au> which
initialize RDF and point the RDF progress info at a dummy frame.


git-svn-id: svn://10.0.0.236/trunk@10943 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:28:56 +00:00
slamm%netscape.com
01045ca981 Add a command for editing the toolbars and reformat the commands into a nicer format.cmd/xfe/src/xfe_commands
git-svn-id: svn://10.0.0.236/trunk@10942 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:19:20 +00:00
slamm%netscape.com
b8edcf36ae Trim down formatItem. Some of the function isn't used and hasn't been for a long time.
git-svn-id: svn://10.0.0.236/trunk@10941 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:19:11 +00:00
slamm%netscape.com
ebfe14a0ec Fix a crash that happens when quiting.
git-svn-id: svn://10.0.0.236/trunk@10940 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:19:07 +00:00
slamm%netscape.com
0a657e68b8 Remove reference to bkmks.h
git-svn-id: svn://10.0.0.236/trunk@10939 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:19:04 +00:00
slamm%netscape.com
ae2f333e6a Add a command for editing the toolbars.
git-svn-id: svn://10.0.0.236/trunk@10938 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:19:01 +00:00
slamm%netscape.com
a4c746853f Fix spelling errors.
git-svn-id: svn://10.0.0.236/trunk@10937 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:18:56 +00:00
dcone%netscape.com
346151d956 added a search path
git-svn-id: svn://10.0.0.236/trunk@10936 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 20:12:47 +00:00
ftang%netscape.com
0fddd3d47e store only UTF8 into history entry
git-svn-id: svn://10.0.0.236/trunk@10935 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 19:50:02 +00:00
av%netscape.com
640c268911 Changed URL for plugin finder page -- approved by amusil
git-svn-id: svn://10.0.0.236/trunk@10934 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 19:46:07 +00:00
spider%netscape.com
2074a3776d Removing old stream listener classes
git-svn-id: svn://10.0.0.236/trunk@10933 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 19:17:13 +00:00
cyeh%netscape.com
18aa694bf9 fix misspelling
git-svn-id: svn://10.0.0.236/trunk@10932 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 19:12:35 +00:00
cyeh%netscape.com
c6f38c4110 fixing bugs in raptor entries.
git-svn-id: svn://10.0.0.236/trunk@10931 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 19:11:37 +00:00
sman%netscape.com
07b0dfd19b Layer updates
git-svn-id: svn://10.0.0.236/trunk@10930 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 18:41:30 +00:00
terry%netscape.com
c904abb332 It turns out that blank lines were being skipped a little too
anxiously.


git-svn-id: svn://10.0.0.236/trunk@10929 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 18:31:05 +00:00
despotdaemon%netscape.com
4d5d3f2423 Pseudo-automatic update of changes made by wtc@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10928 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 18:07:27 +00:00
troy%netscape.com
ac234bca1a Removed mChildCount from nsContainerFrame
git-svn-id: svn://10.0.0.236/trunk@10927 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 17:56:35 +00:00
kipp%netscape.com
8e06d1108f Fixed block's max-element-size computation for child inline frames
git-svn-id: svn://10.0.0.236/trunk@10926 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 17:47:25 +00:00
kmcclusk%netscape.com
1c65627670 Added INITREFCNT to constructor
git-svn-id: svn://10.0.0.236/trunk@10925 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 17:44:33 +00:00
dcone%netscape.com
b63ef940fd updated project with new files, took out obsolete files
git-svn-id: svn://10.0.0.236/trunk@10924 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 17:31:25 +00:00
kmcclusk%netscape.com
22c1640fcd Removed NS_DECL_ISUPPORTS in classes which would cause multiple mRefCnt member
variables to be delcared


git-svn-id: svn://10.0.0.236/trunk@10923 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 17:28:07 +00:00
buster%netscape.com
0c00c9f654 removed lots of assumptions about frame ordering and containership.
table frames no longer assume they are n levels below the inner table frame
table frames no longer assume their child frames are always the expected type of
frame.  Now they check the display type and use that as sufficient proof that the frame
is of the right type.  This implies a heavy reliance on the frame construction code to do
the right thing and always stamp out the right kind of frame for a given display type.


git-svn-id: svn://10.0.0.236/trunk@10922 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 16:37:22 +00:00
jfrancis%netscape.com
78d84133d6 Continuing Ender work
git-svn-id: svn://10.0.0.236/trunk@10921 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 16:30:04 +00:00
jfrancis%netscape.com
2989001a44 continueing Ender work
git-svn-id: svn://10.0.0.236/trunk@10920 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 16:29:27 +00:00
ramiro%netscape.com
64eef7f67d Link with XfeToolTip.
git-svn-id: svn://10.0.0.236/trunk@10919 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 14:54:35 +00:00
ramiro%netscape.com
7bb7e3e740 Build XfeToolTip and tests by default.
git-svn-id: svn://10.0.0.236/trunk@10918 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 14:35:54 +00:00
kin%netscape.com
0c7eaf3285 Modified edt_InitEscapes() to check for '>'. This will make composer write
out &gt; into the HTML stream instead of the '>' character.


git-svn-id: svn://10.0.0.236/trunk@10917 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 14:33:09 +00:00
kin%netscape.com
f4a511c71e Modifications to XFE_EmbeddedEditor constructor:
- Initialize charset to CS_LATIN1
  - Prevent editor from showing until layout has positioned it and
	wants to display it.
  - Manage toolbox and toolbar ahead of time so we can accurately calculate
    the height of the chrome.
  - Commented out paragraph style and character underline buttons again, they
    got blown away by the previous checkin.
  - Added spellcheck button to toolbar.
  - Moved fe_{add_to,remove_from}_all_MWContext_list() functions from
	EmbeddedEditor.cpp to context_funcs.cpp.


git-svn-id: svn://10.0.0.236/trunk@10916 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 14:31:50 +00:00
ramiro%netscape.com
0afb47919d Finalize doc string support. Add better callbacks.
git-svn-id: svn://10.0.0.236/trunk@10915 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 14:25:56 +00:00
wtc%netscape.com
0ed6d23983 Removed references to the obsolete library libmsgc21 in the comments.
Reviewed and approved by Scott Furman.
Files changed: js/src/{Makefile,Makefile.in},
js/src/xpcom/{Makefile,Makefile.in}.


git-svn-id: svn://10.0.0.236/trunk@10914 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 14:16:52 +00:00
wtc%netscape.com
139f62b7fb Removed unneeded libmsgc21.
Files changed: cmd/xfe/{Makefile,Makefile.in},
cmd/stubfe/{Makefile,Makefile.in}.


git-svn-id: svn://10.0.0.236/trunk@10913 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 14:11:18 +00:00
mcafee%netscape.com
820a06594c Fix mkdir() problem for BSDI, thanks to <driehuis@playbeing.org> for this patch
git-svn-id: svn://10.0.0.236/trunk@10912 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 09:43:55 +00:00
ramiro%netscape.com
a390956176 Fix classic off-by-one strcat buffer error.
Thanks to Michael O'Reilly <michael@metal.iinet.net.au> for providing the fix.


git-svn-id: svn://10.0.0.236/trunk@10911 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 09:27:37 +00:00
ftang%netscape.com
ee5328d780 Make the RDF stuff always render UTF8
git-svn-id: svn://10.0.0.236/trunk@10910 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 09:23:48 +00:00
ftang%netscape.com
e68d1e3642 Fix UTF8 problem
git-svn-id: svn://10.0.0.236/trunk@10909 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 09:23:19 +00:00
ftang%netscape.com
1b787aeb7f fix the wrong measurement problem in UTF8 by calling the new UTF8 function
git-svn-id: svn://10.0.0.236/trunk@10908 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 09:22:32 +00:00
ramiro%netscape.com
136d23f238 Add support for documentation strings.
git-svn-id: svn://10.0.0.236/trunk@10907 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 09:22:27 +00:00
ftang%netscape.com
e61e5700e9 implement better UTF8 drawing support. Implement mid and end truncation for UTF8
git-svn-id: svn://10.0.0.236/trunk@10906 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 09:18:25 +00:00
ftang%netscape.com
5f94fb22be add CDefaultFontFontSwitcher.cp for better UTF8 support
git-svn-id: svn://10.0.0.236/trunk@10905 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 09:17:26 +00:00
mcafee%netscape.com
a29226d213 Moving comment to fix AIX & Digital sed breakage. Maybe sed really does suck, as the comment suggests.
git-svn-id: svn://10.0.0.236/trunk@10904 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 07:54:04 +00:00
jband%netscape.com
8ba7042512 added class to minimize drawinf of list items. lxr friendlier generated files
git-svn-id: svn://10.0.0.236/trunk@10902 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 07:28:52 +00:00
jband%netscape.com
0a736ba31f add targets, generated files use C-stlye comments to be more lxr friendly
git-svn-id: svn://10.0.0.236/trunk@10901 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 07:27:07 +00:00
wtc%netscape.com
29a67aadb5 Got rid of references to "OSF1" in this file. Thanks to
raff@aromatic.com for the problem report and the patch.


git-svn-id: svn://10.0.0.236/trunk@10898 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 06:14:26 +00:00
ramiro%netscape.com
8ade4321f2 Add realize callbacks.
git-svn-id: svn://10.0.0.236/trunk@10896 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 05:19:50 +00:00
troy%netscape.com
d2a134fb41 Removed IsPseudoFrame() from nsContainerFrame
git-svn-id: svn://10.0.0.236/trunk@10895 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 04:57:30 +00:00
troy%netscape.com
aec668d182 Changed signature of PushChildren() member function
git-svn-id: svn://10.0.0.236/trunk@10894 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 04:18:58 +00:00
troy%netscape.com
2bdb85f976 Removed IsLastChild() member function from nsContainerFrame
git-svn-id: svn://10.0.0.236/trunk@10891 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 04:12:01 +00:00
troy%netscape.com
556f680fca Removed ChildIsPseudoFrame() and IsEmpty() from nsContainerFrame
git-svn-id: svn://10.0.0.236/trunk@10890 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 04:06:42 +00:00
troy%netscape.com
43e6ab37a3 Removed PreReflowCheck() and PostReflowCheck() from nsContainerFrame
git-svn-id: svn://10.0.0.236/trunk@10888 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 03:59:30 +00:00
wtc%netscape.com
4cd6f2440e Bugzilla bug #122: merged NetBSD patch contributed by
Frank van der Linden (frank@wins.uva.nl).


git-svn-id: svn://10.0.0.236/trunk@10887 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 03:55:47 +00:00
briano%netscape.com
32ad3a5b70 Changes requested by wtc@netscape.com to support NSPR 3.0.
git-svn-id: svn://10.0.0.236/trunk@10885 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 03:51:10 +00:00
troy%netscape.com
025ab65ab4 Removed some XXX CONSTRUCTION code that was work-in-progress, but is
no longer needed


git-svn-id: svn://10.0.0.236/trunk@10884 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 03:49:45 +00:00
troy%netscape.com
bf40dfa99c Removed mFirstContentOffset, LastContentOffset, and mLastContentIsComplete
from nsContainerFrame


git-svn-id: svn://10.0.0.236/trunk@10883 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 03:36:52 +00:00
briano%netscape.com
d841166270 Applied the last of the changes from Frank van der Linden (frank@wins.uva.nl).
git-svn-id: svn://10.0.0.236/trunk@10880 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 03:11:51 +00:00
spider%netscape.com
eca85e9227 Fix for unresolved external on unix
git-svn-id: svn://10.0.0.236/trunk@10879 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 02:55:18 +00:00
hyatt%netscape.com
a194f12bdf Fixing a crash when the HTML pane in Aurora is deleted.
git-svn-id: svn://10.0.0.236/trunk@10877 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 02:00:44 +00:00
troy%netscape.com
3209460837 Changed the way nsIFrame inherits from nsISupports
git-svn-id: svn://10.0.0.236/trunk@10875 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 01:50:16 +00:00
hyatt%netscape.com
3e71b6dcdd Really fix the problem with undocking. :)
git-svn-id: svn://10.0.0.236/trunk@10874 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 01:43:12 +00:00
hyatt%netscape.com
36c08de126 Fixing a problem with undocking the NavCenter window.
git-svn-id: svn://10.0.0.236/trunk@10873 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 01:40:22 +00:00
hyatt%netscape.com
1b437667c0 Making the toolbars add/remove properly.
git-svn-id: svn://10.0.0.236/trunk@10872 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 01:33:20 +00:00
cyeh%netscape.com
5ca67ee54b remove NORMANDY modules
git-svn-id: svn://10.0.0.236/trunk@10871 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 01:32:21 +00:00
beard%netscape.com
bcf18bfa01 create_java_vm_impl was always failing.
git-svn-id: svn://10.0.0.236/trunk@10870 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 01:20:09 +00:00
fur%netscape.com
5774a72d30 Removed references to now-defunct mozilla/js/jsj directory
git-svn-id: svn://10.0.0.236/trunk@10869 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 01:10:02 +00:00
cyeh%netscape.com
c071ae3970 quick fix
git-svn-id: svn://10.0.0.236/trunk@10868 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 01:07:20 +00:00
cyeh%netscape.com
43ad2f22d6 oops...quick fix
git-svn-id: svn://10.0.0.236/trunk@10867 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 01:06:20 +00:00
cyeh%netscape.com
6a972ef04e new raptor modules per scullin
git-svn-id: svn://10.0.0.236/trunk@10866 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 01:05:34 +00:00
hyatt%netscape.com
23a99f1248 Tweaking the notification handler for the toolbars.
git-svn-id: svn://10.0.0.236/trunk@10865 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 00:38:53 +00:00
fur%netscape.com
1669c00013 Deleting obsolete contents of jsj directory
git-svn-id: svn://10.0.0.236/trunk@10864 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 00:32:24 +00:00
karnaze%netscape.com
9a9aaead6d viewer saves compatibility mode preference
git-svn-id: svn://10.0.0.236/trunk@10863 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 00:21:20 +00:00
raman%netscape.com
b6f7b11a56 Added AllJavaScript target to represent a target that defines all JavaScript privileges. JavaSoft's JVM will use this target to perform privileged operations from Java in JS
git-svn-id: svn://10.0.0.236/trunk@10862 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 00:16:14 +00:00
raman%netscape.com
8c70f80362 Added AllJavaScript target to represent a target that defines all JavaScript privileges. JavaSoft's JVM will use this target to perform privileged operations from Java in JS
git-svn-id: svn://10.0.0.236/trunk@10861 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 00:16:10 +00:00
hyatt%netscape.com
6005513c3c Tweaks to the HTML pane calls to make sure they use the template.
git-svn-id: svn://10.0.0.236/trunk@10860 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 00:07:17 +00:00
hyatt%netscape.com
e9a6a7c042 Making the HTML pane work again.
git-svn-id: svn://10.0.0.236/trunk@10859 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 00:06:54 +00:00
ftang%netscape.com
745bd85555 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@10858 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 00:01:01 +00:00
robinf%netscape.com
369b38ae1e fixing bug #321757; updating help to reflect changed behavior of "Show Introduction Screens" global option
git-svn-id: svn://10.0.0.236/trunk@10857 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 23:42:57 +00:00
terry%netscape.com
11fc680fe3 Don't let people checking in from the outside affect any tree unless that tree has 'external' in its name.
git-svn-id: svn://10.0.0.236/trunk@10856 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 23:29:45 +00:00
valeski%netscape.com
cee7486dc6 NGLayout only. Setting the default dirs for NS_NET_FILE to be rooted in the current working directory rather than hardcoded.
git-svn-id: svn://10.0.0.236/trunk@10855 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 23:29:25 +00:00
karnaze%netscape.com
f2395f2993 viewer can set the compatibility mode
git-svn-id: svn://10.0.0.236/trunk@10851 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 23:02:54 +00:00
karnaze%netscape.com
97e632a2d8 support for getting compatibility mode from preferences
git-svn-id: svn://10.0.0.236/trunk@10850 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 23:02:02 +00:00
robinf%netscape.com
661e6070da Fixing bug #324040; adding new help screen for new flag in global options
git-svn-id: svn://10.0.0.236/trunk@10849 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 23:00:43 +00:00
dcone%netscape.com
ed77d583c6 fixed resizing issues
git-svn-id: svn://10.0.0.236/trunk@10848 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 22:10:40 +00:00
dcone%netscape.com
3332bd0528 fixed resizing problems
git-svn-id: svn://10.0.0.236/trunk@10847 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 22:09:52 +00:00
dcone%netscape.com
702526c746 fixed some sizing issues
git-svn-id: svn://10.0.0.236/trunk@10846 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 22:09:23 +00:00
dcone%netscape.com
fa8a146369 Put in code to offset drawing, hittest, etc
git-svn-id: svn://10.0.0.236/trunk@10845 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 22:08:53 +00:00
troy%netscape.com
bcec7d7c3f Removed a comment that is no longer applicable
git-svn-id: svn://10.0.0.236/trunk@10843 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 21:55:41 +00:00
buster%netscape.com
02997b3c4d re-instated fixed layout strategy
git-svn-id: svn://10.0.0.236/trunk@10842 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 21:50:49 +00:00
buster%netscape.com
4cca9446d0 all frame initialization and related logic has moved into the various table frames' Init() methods
from their respective InitalReflow() methods.
table-layout=fixed now completely skips pass1 reflow and doesn't require maxElementSize
information, saving a tremendous amount of time during initial reflow.


git-svn-id: svn://10.0.0.236/trunk@10841 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 21:48:26 +00:00
spider%netscape.com
27152055ea Fixes to load HTML Views again
git-svn-id: svn://10.0.0.236/trunk@10840 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 21:37:24 +00:00
akkana%netscape.com
8f7c44f6eb config.mk
git-svn-id: svn://10.0.0.236/trunk@10839 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 21:30:15 +00:00
vidur%netscape.com
a909e40cf9 Fixes in CSS interfaces
git-svn-id: svn://10.0.0.236/trunk@10838 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 21:28:06 +00:00
troy%netscape.com
171cbed41d Fixed leak of entire content model...
git-svn-id: svn://10.0.0.236/trunk@10836 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:59:57 +00:00
vidur%netscape.com
d955cfca51 Further refinement of style interfaces
git-svn-id: svn://10.0.0.236/trunk@10835 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:58:31 +00:00
akkana%netscape.com
dbba3fe731 more rosetta build bustage
git-svn-id: svn://10.0.0.236/trunk@10834 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:52:02 +00:00
rogerl%netscape.com
59a95935d3 Added the #define for turning on the default messages. Not sure if this is
the right place for it, but I wanted to get it in before the merge-a-thon.


git-svn-id: svn://10.0.0.236/trunk@10833 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:41:13 +00:00
kmcclusk%netscape.com
c4b5c7c1a9 Fixed filewidget query interface failure. The viewer was crashing when trying to open
a file.


git-svn-id: svn://10.0.0.236/trunk@10832 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:39:16 +00:00
rogerl%netscape.com
321b7ee962 Changes for error messages - arguments are now jschar.
git-svn-id: svn://10.0.0.236/trunk@10831 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:38:23 +00:00
rogerl%netscape.com
855761697c Bug #104766, decompileFunctionBody needed to set scope in printer before
calling decompileCode.


git-svn-id: svn://10.0.0.236/trunk@10830 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:37:58 +00:00
rogerl%netscape.com
50fd6c1e43 Changes for error messages - arguments are now jschar.
Bug #104766, decompileFunctionBody needed to set scope in printer before
calling decompileCode.


git-svn-id: svn://10.0.0.236/trunk@10829 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:36:18 +00:00
cls%seawood.org
a80dae1416 Fixed problem with FULL_STATIC_BUILD and js libs. Thanks to Tim Rowley <tor@boojum.cs.brown.edu> for the fix.
git-svn-id: svn://10.0.0.236/trunk@10828 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:20:07 +00:00
bjorn%netscape.com
7f3510ee2e Now using a lock in prarena instead of compare-and-swap.
git-svn-id: svn://10.0.0.236/trunk@10827 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:19:28 +00:00
kipp%netscape.com
298fcbcf3e Fixed up includes
git-svn-id: svn://10.0.0.236/trunk@10826 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:12:21 +00:00
kipp%netscape.com
ad717f51e1 Removed bullet factory methods
git-svn-id: svn://10.0.0.236/trunk@10824 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:12:07 +00:00
kipp%netscape.com
63bec11667 Removed block frame CID
git-svn-id: svn://10.0.0.236/trunk@10823 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:11:50 +00:00
kipp%netscape.com
0de7f63f89 stop including unneeded header file
git-svn-id: svn://10.0.0.236/trunk@10822 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:11:37 +00:00
kipp%netscape.com
d79b129f5c nuked
git-svn-id: svn://10.0.0.236/trunk@10821 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:11:22 +00:00
kipp%netscape.com
c5cf8a4efb Return error properly if NS_NewBlockFrame fails; stop including unneeded header file
git-svn-id: svn://10.0.0.236/trunk@10820 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:11:14 +00:00
kipp%netscape.com
d0b353bec8 Implement bullets here; implement list renumbering cleanly instead of having the bullets blindly do it (fixes a crash and several pagination bugs)
git-svn-id: svn://10.0.0.236/trunk@10819 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:10:40 +00:00
kipp%netscape.com
37fc6e5910 Removed nsHTMLBullet from the build
git-svn-id: svn://10.0.0.236/trunk@10817 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:09:38 +00:00
kmcclusk%netscape.com
45c17f9410 Fix for Linux build. Moved form lib to come after style lib.
git-svn-id: svn://10.0.0.236/trunk@10816 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 20:08:14 +00:00
bjorn%netscape.com
63784f2ba1 Removed a redundant assignment, f->susp=-1.
git-svn-id: svn://10.0.0.236/trunk@10815 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 19:51:26 +00:00
akkana%netscape.com
42f6400525 Remove obsolete rosetta references
git-svn-id: svn://10.0.0.236/trunk@10814 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 19:49:14 +00:00
kmcclusk%netscape.com
0b9521b1af Factored cross-platform code within nsWindow in nsBaseWidget. Converted headers and footers
to use nsISupports.h macros. Implemented nsToolkits query interface and made it creatable
through the factory.


git-svn-id: svn://10.0.0.236/trunk@10812 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 19:19:23 +00:00
kmcclusk%netscape.com
7931aee9d9 Added nsIToolkit to registry
git-svn-id: svn://10.0.0.236/trunk@10811 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 19:16:59 +00:00
robinf%netscape.com
ba8a2e2955 fixinb bug related to text corrections on these screens
git-svn-id: svn://10.0.0.236/trunk@10810 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 19:07:46 +00:00
akkana%netscape.com
46ec8b4111 Turn on MOZ_MAIL_COMPOSE by default. Approved by briano
git-svn-id: svn://10.0.0.236/trunk@10808 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 18:41:11 +00:00
fur%netscape.com
20b526f9fa When finalizing the prototype objects, don't try to access the JNIEnv, since that can cause the JVM to be unnecessarily loaded
git-svn-id: svn://10.0.0.236/trunk@10807 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 18:36:38 +00:00
cls%seawood.org
90737b279a Fixed problem with 'gmake' not executing libs and install targets. Ordering does matter. :(
git-svn-id: svn://10.0.0.236/trunk@10806 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 18:12:14 +00:00
despotdaemon%netscape.com
88c4fba289 Pseudo-automatic update of changes made by terry@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10805 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 18:08:23 +00:00
karnaze%netscape.com
b7d77ef368 added image submit to first form
git-svn-id: svn://10.0.0.236/trunk@10804 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 17:55:28 +00:00
karnaze%netscape.com
353feb2fe6 forgot to add in last checkin
git-svn-id: svn://10.0.0.236/trunk@10802 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 17:44:33 +00:00
karnaze%netscape.com
ea90ff591e Converted forms to use the new content model classes and better separate content from layout.
git-svn-id: svn://10.0.0.236/trunk@10800 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 17:16:51 +00:00
rickg%netscape.com
0069eda5c1 added support for XML processing instructions
git-svn-id: svn://10.0.0.236/trunk@10798 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 16:55:13 +00:00
blizzard%appliedtheory.com
e4b452cfd7 Patch from Bert Driehuis <driehuis@playbeing.org> for returning the view
in the function.


git-svn-id: svn://10.0.0.236/trunk@10797 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 14:04:06 +00:00
pierre%netscape.com
2af99d82b0 added SetFont + call it before calculating the Width or Height
git-svn-id: svn://10.0.0.236/trunk@10796 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 09:29:51 +00:00
pierre%netscape.com
1a15e340d9 added SetFont
git-svn-id: svn://10.0.0.236/trunk@10795 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 09:28:54 +00:00
pierre%netscape.com
edf8a1125e moved SetFont guts to nsFontMetricsMac
git-svn-id: svn://10.0.0.236/trunk@10794 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 09:28:05 +00:00
pierre%netscape.com
be78567e8a handle menu events when there is no window + other fixes
git-svn-id: svn://10.0.0.236/trunk@10793 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 09:24:33 +00:00
pierre%netscape.com
3bfb6cd196 handle menu events when there is no window
git-svn-id: svn://10.0.0.236/trunk@10792 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 09:23:07 +00:00
ramiro%netscape.com
87ef5856b8 Remove 2 extra spaces that were causing Mozilla to crash on startup on some
sun computers.
Thanks to Kurt Swanson <kurt@dna.lth.se> for pointing this out and providing
the fix.


git-svn-id: svn://10.0.0.236/trunk@10791 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 09:21:28 +00:00
pierre%netscape.com
88c6e0ec95 re-enable the scrollbars on Mac, the widgets are now implemented
git-svn-id: svn://10.0.0.236/trunk@10790 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 09:19:55 +00:00
pierre%netscape.com
5edd44880b fixed a GlobalToLocal problem in FindWidgetHit
git-svn-id: svn://10.0.0.236/trunk@10789 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 09:18:46 +00:00
pierre%netscape.com
4bb8a8ed37 added widget/src/mac/manifest
git-svn-id: svn://10.0.0.236/trunk@10788 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 09:12:27 +00:00
pierre%netscape.com
4fa777855a First Checked In.
git-svn-id: svn://10.0.0.236/trunk@10787 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 09:11:08 +00:00
ramiro%netscape.com
82072391aa Fix for bugzilla bug 864. XFE fonts.c file charset array out of whack.
Thanks to raff@aromatic.com for pointing this out and providing the fix.


git-svn-id: svn://10.0.0.236/trunk@10786 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 08:22:25 +00:00
cyeh%netscape.com
8f967ade31 adding JSRef for fur
git-svn-id: svn://10.0.0.236/trunk@10781 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 06:24:00 +00:00
gagan%netscape.com
725ac59f56 Using NET_IsURLInCache instead of NET_IsURLInDiskCache and NET_IsURLInMemCache.
git-svn-id: svn://10.0.0.236/trunk@10780 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 06:06:18 +00:00
gagan%netscape.com
277450790d Added NET_IsURLInCache function.
git-svn-id: svn://10.0.0.236/trunk@10779 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 06:03:45 +00:00
gagan%netscape.com
c1c25bfbf7 Correct check for memory objects.
git-svn-id: svn://10.0.0.236/trunk@10778 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 06:03:27 +00:00
gagan%netscape.com
69512faa8f Added NET_IsURLInCache function. This replaces most cases of NET_IsURLInMemCache || NET_IsURLInDiskCache.
git-svn-id: svn://10.0.0.236/trunk@10777 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 06:03:03 +00:00
gagan%netscape.com
afeb248e3d Misc. changes.
git-svn-id: svn://10.0.0.236/trunk@10776 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 06:01:07 +00:00
gagan%netscape.com
5f53ac2b57 Removed m_Flag, replaced with state variable.
git-svn-id: svn://10.0.0.236/trunk@10775 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 06:00:45 +00:00
gagan%netscape.com
9040db951d Disk access for streams to file.
git-svn-id: svn://10.0.0.236/trunk@10774 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 06:00:13 +00:00
gagan%netscape.com
cd4e898fad Cache Object's state functions.
git-svn-id: svn://10.0.0.236/trunk@10773 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 05:59:04 +00:00
gagan%netscape.com
9446da27fe PRFileDesc instead of XP_file*.
git-svn-id: svn://10.0.0.236/trunk@10772 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 05:58:03 +00:00
gagan%netscape.com
4cea6cdb22 Added State accessor functions.
git-svn-id: svn://10.0.0.236/trunk@10771 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 05:57:06 +00:00
troy%netscape.com
8e2160e6db Fixed bug in InsertNewFrame() that was screwing up the child list
git-svn-id: svn://10.0.0.236/trunk@10770 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 04:45:59 +00:00
troy%netscape.com
5d20ffe429 Fixed an off by one problem in the ContentInserted() code
git-svn-id: svn://10.0.0.236/trunk@10769 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 04:25:49 +00:00
spider%netscape.com
3eefd2153b XPFC Implementation on top ov Views
git-svn-id: svn://10.0.0.236/trunk@10767 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 03:40:00 +00:00
valeski%netscape.com
71efef1ee4 added mkprefs.h to the makefile.in file.
git-svn-id: svn://10.0.0.236/trunk@10766 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 03:03:21 +00:00
kipp%netscape.com
647c79cbaf Disabled some tests :-(
git-svn-id: svn://10.0.0.236/trunk@10764 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:36:21 +00:00
kipp%netscape.com
a18a35cc4f Added a list method for outputing top/right/bottom/left objects like border/padding/margins
git-svn-id: svn://10.0.0.236/trunk@10763 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:36:07 +00:00
kipp%netscape.com
8a980ec5ee Fixed parsing of margins to allow for auto values
git-svn-id: svn://10.0.0.236/trunk@10762 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:35:10 +00:00
kipp%netscape.com
5b0a290d9e Removed VerticallyAlignChildren (it's in nsInlineReflow now)
git-svn-id: svn://10.0.0.236/trunk@10761 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:34:43 +00:00
kipp%netscape.com
2f52f16b2b Improved list output for border/padding/margin
git-svn-id: svn://10.0.0.236/trunk@10760 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:34:21 +00:00
kipp%netscape.com
f8406870d2 Some improvement to list layout
git-svn-id: svn://10.0.0.236/trunk@10759 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:33:37 +00:00
kipp%netscape.com
8673b40ed5 Removed unused include
git-svn-id: svn://10.0.0.236/trunk@10758 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:33:23 +00:00
kipp%netscape.com
90fba2953e Added a reminder XXX
git-svn-id: svn://10.0.0.236/trunk@10757 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:33:04 +00:00
kipp%netscape.com
9faf57d773 Removed dead includes
git-svn-id: svn://10.0.0.236/trunk@10756 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:32:43 +00:00
kipp%netscape.com
9337a6d773 use line-layout's pres-context as a ref not a pointer
git-svn-id: svn://10.0.0.236/trunk@10755 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:32:17 +00:00
buster%netscape.com
bb5e1eca75 implementation of table-layout=fixed strategy
git-svn-id: svn://10.0.0.236/trunk@10754 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:32:15 +00:00
kipp%netscape.com
6fa4714901 use nsHTMLContainerFrame instead of nsHTMLBase
git-svn-id: svn://10.0.0.236/trunk@10753 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:31:48 +00:00
kipp%netscape.com
24df681107 Use pres-context as a ref instead of a pointer
git-svn-id: svn://10.0.0.236/trunk@10752 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:31:16 +00:00
kipp%netscape.com
7bc4aa3916 Added methods for counting the number of placed frames; switched the pres-context to a ref from a pointer; removed some debris
git-svn-id: svn://10.0.0.236/trunk@10751 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:31:00 +00:00
kipp%netscape.com
a5295b280e Use nsHTMLContainerFrame instead of nsHTMLBase
git-svn-id: svn://10.0.0.236/trunk@10750 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:30:21 +00:00
kipp%netscape.com
3bcbd67a5a Updated NS_INLINE_LINE_BREAK_BEFORE macro to not take an argument and explained why in the comment
git-svn-id: svn://10.0.0.236/trunk@10749 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:30:00 +00:00
kipp%netscape.com
c45150ede3 Moved some methods from various places into this class
git-svn-id: svn://10.0.0.236/trunk@10748 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:29:31 +00:00
kipp%netscape.com
d11f4399bc nuked
git-svn-id: svn://10.0.0.236/trunk@10747 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:29:03 +00:00
kipp%netscape.com
22e2ded2a8 moved CreateViewForFrame to nsHTMLContainerFrame; changed usage of line-layout pres-context from pointer to ref
git-svn-id: svn://10.0.0.236/trunk@10746 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:27:56 +00:00
kipp%netscape.com
da6504bc4c Added more args to ComputeDesiredSize
git-svn-id: svn://10.0.0.236/trunk@10745 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:27:21 +00:00
kipp%netscape.com
3c195f0ff8 Partial implementation of body style width/height support
git-svn-id: svn://10.0.0.236/trunk@10744 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:26:29 +00:00
kipp%netscape.com
73439c4818 Spanked hard to reorg code around nsInlineReflow; rework list handling; rework factoring of inline/block reflow
git-svn-id: svn://10.0.0.236/trunk@10743 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:25:26 +00:00
kipp%netscape.com
ee877121c9 use line layout pres-context as a ref not a pointer
git-svn-id: svn://10.0.0.236/trunk@10742 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:24:49 +00:00
kipp%netscape.com
d01f564c80 Added new source; removed old source
git-svn-id: svn://10.0.0.236/trunk@10741 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:24:15 +00:00
kipp%netscape.com
678d6e579e Made DeleteChildsNextInFlow public and virtual
git-svn-id: svn://10.0.0.236/trunk@10740 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:23:33 +00:00
kipp%netscape.com
e05239f07c Renamed margin carry in/out variables in the metrics struct
git-svn-id: svn://10.0.0.236/trunk@10739 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:21:53 +00:00
kipp%netscape.com
dc118c3bbb new
git-svn-id: svn://10.0.0.236/trunk@10738 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 02:19:05 +00:00
kipp%netscape.com
ba293acaeb Fixed the build
git-svn-id: svn://10.0.0.236/trunk@10737 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 01:47:17 +00:00
sdagley%netscape.com
918d9669f9 Added prototype for lo_ProcessHeader so the Mac will build. How any platform builds without I don't know (but I'd guess they don't have warnings for un-prototyped functions).
git-svn-id: svn://10.0.0.236/trunk@10736 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 01:45:44 +00:00
briano%netscape.com
719d4641d0 Changed EDITOR to MOZ_EDITOR, because EDITOR is almost always defined in the user's environment, and that breaks MOZ_LITE builds. Approved by ramiro@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10731 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 00:47:17 +00:00
jsun%netscape.com
8ba4677348 added the timestamp and start,end range of events to NSCalendar.
git-svn-id: svn://10.0.0.236/trunk@10730 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 00:04:34 +00:00
briano%netscape.com
a67e0ef2aa Whether or not security is enabled is independent of the MOZ_LITE, MOZ_MEDIUM, MOZ_BLAHBLAHBLAH macros. This should help people building MOZ_LITE.
git-svn-id: svn://10.0.0.236/trunk@10729 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 23:49:58 +00:00
buster%netscape.com
28f1107062 set all the groundwork for FAST table layout based on CSS-2 table-layout property
git-svn-id: svn://10.0.0.236/trunk@10726 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 23:36:06 +00:00
radha%netscape.com
c1945f0c69 Moved MWContext utility functions to context_funcs.cpp
git-svn-id: svn://10.0.0.236/trunk@10724 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 23:32:49 +00:00
cls%seawood.org
d98292211a Moved files accidentally placed in MOZ_EDITOR ifdef.
git-svn-id: svn://10.0.0.236/trunk@10720 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 23:03:47 +00:00
cls%seawood.org
e6336bfaee Sync'd Makefile.ins
git-svn-id: svn://10.0.0.236/trunk@10718 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 23:01:29 +00:00
toshok%netscape.com
4dd4f2823f add handling for header elements in reflow. especially fixes alignment lossage.
git-svn-id: svn://10.0.0.236/trunk@10717 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 22:51:43 +00:00
beard%netscape.com
6bd298bbe0 Defining NS_EXPORT, et. al. for XP_MAC.
git-svn-id: svn://10.0.0.236/trunk@10716 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 22:46:18 +00:00
valeski%netscape.com
cea5b8a6ec mozilla - added mkprefs.h to the builds and replaced "*" pref strings with #defines.
nglayout - added get & set methods for http proxies to nsINetService.


git-svn-id: svn://10.0.0.236/trunk@10714 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 22:41:27 +00:00
radha%netscape.com
979f4bccb3 Check if image->clientData exists before trying to obtain the pixmap
from it.


git-svn-id: svn://10.0.0.236/trunk@10712 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 22:24:29 +00:00
radha%netscape.com
8526f999cd New utility functions to create MWContext and obtain frame handle from
MWContext


git-svn-id: svn://10.0.0.236/trunk@10711 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 22:23:49 +00:00
beard%netscape.com
38c5cbb164 Need a real plugin manager reference.
git-svn-id: svn://10.0.0.236/trunk@10710 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 22:23:35 +00:00
ftang%netscape.com
50defacc4d fix bug 324313 in Mozilla first. Reviwed by erik
git-svn-id: svn://10.0.0.236/trunk@10709 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 22:14:02 +00:00
beard%netscape.com
0bf5ab8b0f Removed redundant (wrong) declaration of local variable err from GetLiveconnect(), which was shadowing another declaration of err in an outer scope.
git-svn-id: svn://10.0.0.236/trunk@10708 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 22:02:33 +00:00
bjorn%netscape.com
b64ec41425 Patched the name JS_USE_ONLY_NSPR_LOCKS.
git-svn-id: svn://10.0.0.236/trunk@10705 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 21:45:13 +00:00
vidur%netscape.com
0608e3fd78 Added method to get property weight
git-svn-id: svn://10.0.0.236/trunk@10703 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 21:30:10 +00:00
vidur%netscape.com
20d458c395 New style interfaces
git-svn-id: svn://10.0.0.236/trunk@10702 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 21:19:11 +00:00
spider%netscape.com
dfdea96b6d Add io.h on windows
git-svn-id: svn://10.0.0.236/trunk@10701 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 20:44:51 +00:00
despotdaemon%netscape.com
c119975970 Pseudo-automatic update of changes made by terry@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10698 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 20:26:37 +00:00
despotdaemon%netscape.com
7a16a8a9c6 Pseudo-automatic update of changes made by cyeh@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10695 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 18:27:59 +00:00
terry%netscape.com
7526772863 Don't forget regexp or column choices when resorting
git-svn-id: svn://10.0.0.236/trunk@10694 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 18:23:14 +00:00
wtc%netscape.com
06d57ca345 NO_NSPR_PRIVATE_HEADER_BRANCH landing. Removed the inclusions of
private NSPR headers (prosdep.h and primpl.h) from the Mozilla source.
The part of prosdep.h that is actually needed by Mozilla was extracted
and put in the new file mozilla/include/xp_path.h.


git-svn-id: svn://10.0.0.236/trunk@10691 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 16:59:57 +00:00
terry%netscape.com
24741b9973 Added disabled, voucher, signedform.
git-svn-id: svn://10.0.0.236/trunk@10690 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 16:56:39 +00:00
kipp%netscape.com
076d53dd27 Added code to map illegal ncr values as per navigator
git-svn-id: svn://10.0.0.236/trunk@10689 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 15:34:50 +00:00
briano%netscape.com
be49e1baf4 Cleaned it up and added in all the .mk files that were 'missing'.
git-svn-id: svn://10.0.0.236/trunk@10688 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 07:20:06 +00:00
rpotts%netscape.com
fb2abb314f Initialize Async DNS during the rest of the netlib initialization. This will take place on the netlib thread (where appropriate...)
git-svn-id: svn://10.0.0.236/trunk@10687 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 07:03:54 +00:00
rpotts%netscape.com
6cd03c57b9 Move DNS initialization out to when Netlib is initialized. This ensures that the initialization takes place on the Netlib Thread.
git-svn-id: svn://10.0.0.236/trunk@10686 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 07:02:20 +00:00
beard%netscape.com
ce650a3936 Added :mozilla:dist:nava-java: to access paths, to override :dist:liveconnect: version of netscape_java_JSObject.h, which #includes <jni.h>.
git-svn-id: svn://10.0.0.236/trunk@10685 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 06:48:07 +00:00
pierre%netscape.com
d4753fee99 handle Quit cmd (added mMacPump in order to call StopRunnning)
git-svn-id: svn://10.0.0.236/trunk@10684 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:22:57 +00:00
pierre%netscape.com
0c9c5041c3 implemented menu events
git-svn-id: svn://10.0.0.236/trunk@10683 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:21:31 +00:00
pierre%netscape.com
d28dcec76e added DoMenu and StopRunning
git-svn-id: svn://10.0.0.236/trunk@10682 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:20:05 +00:00
pierre%netscape.com
7461840b06 destructor closes window
git-svn-id: svn://10.0.0.236/trunk@10681 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:18:40 +00:00
raman%netscape.com
a8251d5e68 Turn on the autoupdate preference by default. OK'ed by cathleen and jar. At this point, this is more for demo of Autoupdate feature on windows
git-svn-id: svn://10.0.0.236/trunk@10680 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:17:52 +00:00
pierre%netscape.com
fa7548bafd removed nsMacResource.r
git-svn-id: svn://10.0.0.236/trunk@10679 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:17:51 +00:00
pierre%netscape.com
422ab7fe0f updated menus
git-svn-id: svn://10.0.0.236/trunk@10678 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:16:39 +00:00
raman%netscape.com
5c4056bbea On windows if smartupdate is not enabled, enable autoupdate manually. OK'ed by cathleen and jar. This is more for demo of Autoupdate feature
git-svn-id: svn://10.0.0.236/trunk@10677 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:16:31 +00:00
raman%netscape.com
cc95aca1bc Create autoupdt directory if it doesn't exist
git-svn-id: svn://10.0.0.236/trunk@10676 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:15:00 +00:00
despotdaemon%netscape.com
7afc87f449 Pseudo-automatic update of changes made by cyeh@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10675 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:12:09 +00:00
troy%netscape.com
adc4d0083e Changed to how broken image is handled
git-svn-id: svn://10.0.0.236/trunk@10674 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 04:01:16 +00:00
cls%seawood.org
8039a94c6a Sync'd Makefile.ins with corresponding Makefiles. Fixed problems with autoconf build. Thanks to Christopher Blizzard <blizzard@appliedtheory.com> and Tom Rini <trini@kernel.crashing.org>.
git-svn-id: svn://10.0.0.236/trunk@10673 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 03:47:27 +00:00
troy%netscape.com
d56bd3fec6 Added display of icon when loading image
git-svn-id: svn://10.0.0.236/trunk@10672 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 03:34:44 +00:00
sdagley%netscape.com
09b9d476ef per pinkerton this call to URDFUtilities::PropertyValueBool is no longer needed (and it's breaking the Mac build)
git-svn-id: svn://10.0.0.236/trunk@10671 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 03:10:12 +00:00
fur%netscape.com
430b53b9e4 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@10670 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 03:07:13 +00:00
spider%netscape.com
3787e9848b Begin hooking up the view manager
git-svn-id: svn://10.0.0.236/trunk@10667 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:45:21 +00:00
beard%netscape.com
80cbe1eecc Turned off registering the native methods that are now installed by the plugin.
git-svn-id: svn://10.0.0.236/trunk@10665 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:29:36 +00:00
blizzard%appliedtheory.com
004c7abb79 Only build liveconnect methods if OJI is defined
git-svn-id: svn://10.0.0.236/trunk@10664 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:26:12 +00:00
blizzard%appliedtheory.com
6c07d1e6f4 Include caps includes for prototypes
git-svn-id: svn://10.0.0.236/trunk@10663 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:25:43 +00:00
beard%netscape.com
e4cf2baf78 Changed all interfaces to use UNICODE strings, changed some ints to jints.
git-svn-id: svn://10.0.0.236/trunk@10662 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:24:56 +00:00
beard%netscape.com
2feeb0375b Added netscape_javascript_JSObject.h.
git-svn-id: svn://10.0.0.236/trunk@10661 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:23:44 +00:00
beard%netscape.com
52e4df93eb #include "prtypes.h" if noone else does.
git-svn-id: svn://10.0.0.236/trunk@10660 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:23:23 +00:00
toshok%netscape.com
cb76e927cf rework grid relayout. This fixes lots of things, like the problems of grid cells disappearing on resize, and grid cells that were specified with a fixed size acting like they were assigned a percentage on resize.
git-svn-id: svn://10.0.0.236/trunk@10659 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:14:49 +00:00
matt%netscape.com
34170d0ad5 Adding mak file for HP-UXB.10.20
git-svn-id: svn://10.0.0.236/trunk@10658 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:13:56 +00:00
peterl%netscape.com
1de0d0e996 don't set attributes that are already set
git-svn-id: svn://10.0.0.236/trunk@10657 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:09:26 +00:00
peterl%netscape.com
db24360778 clamp border & padding width to 0
git-svn-id: svn://10.0.0.236/trunk@10656 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:08:45 +00:00
peterl%netscape.com
f8aedd9a4c moved skipped content token from the attribute list to it's own slot
git-svn-id: svn://10.0.0.236/trunk@10654 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 02:07:31 +00:00
spider%netscape.com
8619f6dfcc WIP: Prep for ViewManager. Make root canvas at Container level
git-svn-id: svn://10.0.0.236/trunk@10652 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 01:35:53 +00:00
scullin%netscape.com
3e8e5f4f7e Added ngprefs test hooks.
git-svn-id: svn://10.0.0.236/trunk@10651 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:57:54 +00:00
scullin%netscape.com
a98743ef50 Added ngprefs dir.
git-svn-id: svn://10.0.0.236/trunk@10650 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:56:07 +00:00
scullin%netscape.com
4a845227e2 Added ngprefs build mechanism.
git-svn-id: svn://10.0.0.236/trunk@10649 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:55:04 +00:00
spider%netscape.com
0487d6f8e0 Remove old SetWidget method from Cal XML parser
git-svn-id: svn://10.0.0.236/trunk@10648 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:52:11 +00:00
slamm%netscape.com
1e1931c9f5 Add a parameter to HT_PaneFromURL (to match backend change that hyatt made). Fix crash on exit (We deleted the notification struct and then HT tried to send us more events).
git-svn-id: svn://10.0.0.236/trunk@10647 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:50:25 +00:00
sdagley%netscape.com
da168af872 Yes the tree is in flames but it'll stay that way without this mod. Reviewed/Approved hyatt. Add new paramter for call to HT_PaneFromURL.
git-svn-id: svn://10.0.0.236/trunk@10646 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:35:08 +00:00
rpotts%netscape.com
d2ab45317d Changed the order for deleting nsImageRequsts and the ImageGroupContext...
git-svn-id: svn://10.0.0.236/trunk@10645 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:27:12 +00:00
hyatt%netscape.com
f7091ec331 Support for templates added to SHACK. More properties added to front end.
git-svn-id: svn://10.0.0.236/trunk@10644 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:24:26 +00:00
hyatt%netscape.com
7225c36093 More properties added and template support for SHACK added.
git-svn-id: svn://10.0.0.236/trunk@10643 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:23:53 +00:00
scullin%netscape.com
1d2b4fc990 Removed.
git-svn-id: svn://10.0.0.236/trunk@10642 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:08:51 +00:00
scullin%netscape.com
6697ab47de Added.
git-svn-id: svn://10.0.0.236/trunk@10641 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:08:27 +00:00
cyeh%netscape.com
38029dc0ad sacrificing the chicken: try moving calls before dist
git-svn-id: svn://10.0.0.236/trunk@10640 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:06:11 +00:00
nisheeth%netscape.com
fdb56c6f63 Adding code submitted by Ori Kravitz (orik@mercury.co.il) that informs listeners
of keyboard/mouse events before passing the events to JS.  This is part of the
layout probe project that is trying to add test automation interfaces to the
layout engine.


git-svn-id: svn://10.0.0.236/trunk@10639 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 00:01:23 +00:00
rpotts%netscape.com
bba6403a16 Fixes for platforms where NETLIB_THREAD is not defined... only create proxies if NETLIB_THREAD is defined
git-svn-id: svn://10.0.0.236/trunk@10638 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 23:58:55 +00:00
nisheeth%netscape.com
b1e81f16d9 Added code submitted by Ori Kravitz (orik@mercury.co.il) that informs listeners
that all network connections have completed for the current page.  This is part
of the Layout Probe project that is trying to add test automation interfaces to
the layout engine.


git-svn-id: svn://10.0.0.236/trunk@10637 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 23:58:14 +00:00
beard%netscape.com
8c909c2738 Changed use of stricmp to XP_STRCASECMP, fixed reference to platform-specific pText field in LO_TextStruct_struct.
git-svn-id: svn://10.0.0.236/trunk@10636 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 23:51:48 +00:00
pierre%netscape.com
02e822d3bc fixed raptor build: added nsNetThread.cpp to the 'modular' targets
git-svn-id: svn://10.0.0.236/trunk@10635 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 23:45:52 +00:00
terry%netscape.com
4fc22b4fc7 Patch by (mostly) Bert Driehuis <bert_driehuis@nl.compuware.com> --
explain a bit about the versioncache file.


git-svn-id: svn://10.0.0.236/trunk@10634 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 23:29:39 +00:00
spider%netscape.com
004a69c80c Fix to getDefaultCursor on all mouse motion events based on mouse pt
git-svn-id: svn://10.0.0.236/trunk@10632 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 23:25:41 +00:00
pierre%netscape.com
0e14d5b2fa added gif and jpg files to the samples folder
git-svn-id: svn://10.0.0.236/trunk@10631 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 23:16:10 +00:00
spider%netscape.com
6b5cf5e240 Change the cursor based on the splitter's orientation
git-svn-id: svn://10.0.0.236/trunk@10630 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 23:04:32 +00:00
akkana%netscape.com
238a3242ed Fix build error: C++ comment in file included by C files
git-svn-id: svn://10.0.0.236/trunk@10629 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 22:43:50 +00:00
beard%netscape.com
cdb3424e64 Removed nsINetworkManager.
git-svn-id: svn://10.0.0.236/trunk@10628 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 22:18:43 +00:00
nisheeth%netscape.com
9499876f5c Adding files created by Ori Kravitz (orik@mercury.co.il) for exposing
interfaces for testing the layout engine.


git-svn-id: svn://10.0.0.236/trunk@10627 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 22:16:41 +00:00
ramiro%netscape.com
6072a45816 Fix taskbar action button transparency.
git-svn-id: svn://10.0.0.236/trunk@10626 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 22:08:18 +00:00
nisheeth%netscape.com
82480418fa Adding build support for modules/libtest if MOZ_LIBTEST is defined.
git-svn-id: svn://10.0.0.236/trunk@10625 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 22:08:05 +00:00
dcone%netscape.com
48e20a157a scroll bar is drawing, nothing else
git-svn-id: svn://10.0.0.236/trunk@10623 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 21:56:55 +00:00
nisheeth%netscape.com
faed7fd133 Checking in changes made for the Layout Probe API project by Ori Kravitz
(orik@mercury.co.il) and Andrei Romanov (aromanov@segue.com).


git-svn-id: svn://10.0.0.236/trunk@10622 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 21:54:50 +00:00
dcone%netscape.com
d8061bc83e Fixed alpha layer
git-svn-id: svn://10.0.0.236/trunk@10621 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 21:46:39 +00:00
nisheeth%netscape.com
9e48820e1e Add LAYPROBE_API to compiler defines if MOZ_LIBTEST is set.
git-svn-id: svn://10.0.0.236/trunk@10620 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 21:46:38 +00:00
dcone%netscape.com
2318cb3fa3 *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@10619 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 21:43:58 +00:00
nisheeth%netscape.com
abeee03606 Adding build support for modules/libtest that exposes interfaces for
testing the layout engine.


git-svn-id: svn://10.0.0.236/trunk@10618 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 21:43:38 +00:00
terry%netscape.com
43c01aad71 Now works under "use strict".
git-svn-id: svn://10.0.0.236/trunk@10617 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 21:15:42 +00:00
sudu%netscape.com
e149fac3a4 Added back a initializer which I missed in last merge
git-svn-id: svn://10.0.0.236/trunk@10616 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 21:01:16 +00:00
spider%netscape.com
f3a593464f WIP: Splittable Canvas
git-svn-id: svn://10.0.0.236/trunk@10615 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 21:00:53 +00:00
ramiro%netscape.com
998d0a9865 Add a margin to taskbar action button.
git-svn-id: svn://10.0.0.236/trunk@10614 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 20:55:53 +00:00
ramiro%netscape.com
09c3da1b92 Remove unused taskbar stuff.
git-svn-id: svn://10.0.0.236/trunk@10613 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 20:51:41 +00:00
ramiro%netscape.com
d763585f82 Unbreak the taskbar some more.
git-svn-id: svn://10.0.0.236/trunk@10612 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 20:50:25 +00:00
beard%netscape.com
145d5f65c1 Added JVM_SpendTime.
git-svn-id: svn://10.0.0.236/trunk@10611 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 20:47:21 +00:00
jsun%netscape.com
2b0e455357 Removed memory leak.
The leak occurred in InitialLoadData when
copying the fetched events from the vector returned by FetchEventsByRange
to the mpShell->m_pCalendar.


git-svn-id: svn://10.0.0.236/trunk@10610 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 20:45:43 +00:00
beard%netscape.com
9596756b89 Added SpendTime to nsIJVMPlugin. Only turned on for XP_MAC, to avoid breaking other's plugins.
git-svn-id: svn://10.0.0.236/trunk@10609 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 20:41:19 +00:00
ramiro%netscape.com
826f56ec53 Add a callback to control which toolbar children are resized to the max
dimensions.


git-svn-id: svn://10.0.0.236/trunk@10608 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 20:20:14 +00:00
ramiro%netscape.com
01e9b6890c Callback reason modularization.
git-svn-id: svn://10.0.0.236/trunk@10605 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 19:49:21 +00:00
troy%netscape.com
225e1b2cb4 Fixed dump-tree problem
git-svn-id: svn://10.0.0.236/trunk@10603 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 19:33:21 +00:00
spider%netscape.com
3a4a8e7217 Add support for ActionCommand's to trickle up the canvas hierarchy
until command gets processed.  Support for LoadUrl in Container also
implemented.


git-svn-id: svn://10.0.0.236/trunk@10602 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 19:27:44 +00:00
sudu%netscape.com
92ec0851aa Bring autoconf build up to date with non-autoconf build
git-svn-id: svn://10.0.0.236/trunk@10599 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 19:25:58 +00:00
terry%netscape.com
803b2253ce Patch by Bert Driehuis <bert_driehuis@nl.compuware.com> -- recognize
BSDI systems.


git-svn-id: svn://10.0.0.236/trunk@10596 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 18:51:33 +00:00
spider%netscape.com
c613528fc5 platform independe libnls libs
git-svn-id: svn://10.0.0.236/trunk@10595 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 18:37:17 +00:00
buster%netscape.com
647a672694 added "center" to table horizontal align attribute as a legal value, although the HTML4 spec
says "middle" for h-align and "center" for v-align.  But Nav4 and IE both accept "center" as
well as "middle", so now we do too.


git-svn-id: svn://10.0.0.236/trunk@10594 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 18:34:30 +00:00
blizzard%appliedtheory.com
a3518e5690 Add the include/private directory to the include path
git-svn-id: svn://10.0.0.236/trunk@10593 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 18:18:29 +00:00
rpotts%netscape.com
34d304090c Moved the code to mangle resource: URLs into file: URLs out of the Url::Open(...) method and into the NetServiceManager...
git-svn-id: svn://10.0.0.236/trunk@10592 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 18:15:26 +00:00
cyeh%netscape.com
326152568e check-in and pray: trying a delay of 10 seconds before each external perl tool call.3
git-svn-id: svn://10.0.0.236/trunk@10591 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 18:12:30 +00:00
terry%netscape.com
79b9bd88b2 Was generating garbage instead of the Cc: line.
git-svn-id: svn://10.0.0.236/trunk@10590 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 18:07:52 +00:00
norris%netscape.com
01993cd6e1 Fix bug 122041 "get illegal url when having foo.html?http://norris.html"
git-svn-id: svn://10.0.0.236/trunk@10588 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 17:49:36 +00:00
cyeh%netscape.com
916de29ee4 adding a 10 second delay in the hopes that this will cause the automation to work.+
git-svn-id: svn://10.0.0.236/trunk@10587 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 17:48:17 +00:00
kin%netscape.com
b4607052d2 Removed the ParagraphStyle and CharacterUnderline buttons from the HTMLArea
toolbar.


git-svn-id: svn://10.0.0.236/trunk@10584 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 17:38:41 +00:00
kin%netscape.com
e4d173eef8 Modified htmlarea_create() use the current_text if it exists. Fixes HTMLArea
reload, page forward and back.


git-svn-id: svn://10.0.0.236/trunk@10583 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 17:36:59 +00:00
kin%netscape.com
685f033647 Fix for bug #318302: "Undo" leaves a line of text
Removed call to StartTyping(), in CEditBuffer::ReturnKey(), for the
case where bTyping is false.
Reviewed by cmanske. Approved by marek.

Added parens around a set of conditions in CEditBuffer::PasteText() to prevent
the occassional dereferencing of a null pointer.


git-svn-id: svn://10.0.0.236/trunk@10582 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 17:33:14 +00:00
blizzard%appliedtheory.com
d7c97208e8 Only try to detect Motif if you plan on building xfe
git-svn-id: svn://10.0.0.236/trunk@10581 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 17:29:32 +00:00
spider%netscape.com
3322333c7d Moving images to subdirectory off of XML ui description files
git-svn-id: svn://10.0.0.236/trunk@10580 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 17:27:21 +00:00
spider%netscape.com
cbce85cf02 Adding NPL's which were mistakenly forgotten upon initial checkin
git-svn-id: svn://10.0.0.236/trunk@10578 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 17:18:04 +00:00
norris%netscape.com
376d6feeba Fix bug 323696 "js12: unimplemented bytecode error in switch test"
Rename js_ResetCodeGenerator to js_FinishCodeGenerator to indicate that
js_InitCodeGenerator must be called after finish before it can be reused.


git-svn-id: svn://10.0.0.236/trunk@10577 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 17:17:26 +00:00
troy%netscape.com
21d3525b26 Fixed a bug introduced with the LastFrame() changes
git-svn-id: svn://10.0.0.236/trunk@10576 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 16:37:38 +00:00
troy%netscape.com
e592c4b9fd Fixed some horkage I introduced
git-svn-id: svn://10.0.0.236/trunk@10575 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 16:35:49 +00:00
troy%netscape.com
558109f391 Updated to latest DOM
git-svn-id: svn://10.0.0.236/trunk@10574 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 16:31:54 +00:00
spider%netscape.com
8279500d2f WIP: NLS stub implementation on NSPR
git-svn-id: svn://10.0.0.236/trunk@10573 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 16:13:08 +00:00
ramiro%netscape.com
6dec4084ff Un-break the taskbar some more.
git-svn-id: svn://10.0.0.236/trunk@10572 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 14:20:52 +00:00
ramiro%netscape.com
9cab6028bc Add XfeTabGetOrientation().
git-svn-id: svn://10.0.0.236/trunk@10571 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 13:47:39 +00:00
ramiro%netscape.com
74ab511457 Add XfeToolBar.
git-svn-id: svn://10.0.0.236/trunk@10570 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 13:22:45 +00:00
ramiro%netscape.com
a670622534 Create the ender toolbar item only when needed.
git-svn-id: svn://10.0.0.236/trunk@10569 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 12:22:38 +00:00
mcafee%netscape.com
d81d62f835 Initial version, borrowed from webshell/tests/viewer
git-svn-id: svn://10.0.0.236/trunk@10568 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 08:03:35 +00:00
mcafee%netscape.com
8f3cae2366 NGLayout source is src2
git-svn-id: svn://10.0.0.236/trunk@10567 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 08:00:15 +00:00
mcafee%netscape.com
f5245c1966 Added FE_GetRelatedLinksContext()
git-svn-id: svn://10.0.0.236/trunk@10566 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 05:30:47 +00:00
mcafee%netscape.com
d72cbff971 Renamed init() to read(), save() to write().
git-svn-id: svn://10.0.0.236/trunk@10565 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 05:29:26 +00:00
mcafee%netscape.com
d66ad63461 Added support for Smart Browsing
git-svn-id: svn://10.0.0.236/trunk@10564 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 05:27:50 +00:00
mcafee%netscape.com
2dac0fce6e read_str is now fe_PrefReadString(), write_str() is fe_PrefWriteString()
git-svn-id: svn://10.0.0.236/trunk@10563 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 05:25:49 +00:00
mcafee%netscape.com
eeef033d32 Added updateRelatedLinksShowing()
git-svn-id: svn://10.0.0.236/trunk@10562 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 05:25:09 +00:00
mcafee%netscape.com
d4ad203ca1 Removed cookie stuff from fe_GlobalPrefs
git-svn-id: svn://10.0.0.236/trunk@10561 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 05:24:30 +00:00
mcafee%netscape.com
f2e7b9f28d Unused variable warning on Linux
git-svn-id: svn://10.0.0.236/trunk@10560 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 04:58:41 +00:00
mcafee%netscape.com
fc6f5d428f Merging SmartBrowsing prefs in from Nova.
git-svn-id: svn://10.0.0.236/trunk@10559 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 04:44:42 +00:00
mcafee%netscape.com
e2b0aa940c Unused variables warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10558 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 04:43:33 +00:00
mcafee%netscape.com
6b2934e06f Fixing compiler warning on Linux
git-svn-id: svn://10.0.0.236/trunk@10557 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 04:42:13 +00:00
troy%netscape.com
2731820910 Removed references to mFirstContentOffset, mLastContentIsComplete, and mChildCount
git-svn-id: svn://10.0.0.236/trunk@10556 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 03:50:44 +00:00
troy%netscape.com
82426e2926 Removed references to mFirstContentOffset
git-svn-id: svn://10.0.0.236/trunk@10555 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 03:47:45 +00:00
troy%netscape.com
90cbfd4db8 Removed all references to m<First,Last>ContentOffset,mChildCount,mLastContentIsComplete
git-svn-id: svn://10.0.0.236/trunk@10554 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 03:40:32 +00:00
michaelp%netscape.com
f5847039d8 now correctly refreshes the window in ForceRefresh().
git-svn-id: svn://10.0.0.236/trunk@10553 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 22:24:21 +00:00
ramiro%netscape.com
6d78dfcafa This is a temprary hack to fix the "off by one" toolbar closed problem that
occurs when all toolbox items are closed.


git-svn-id: svn://10.0.0.236/trunk@10552 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 17:17:12 +00:00
ramiro%netscape.com
ff7a8c8a7e Remove superflous XmNchildUsePreferred{Width,Height} resources.
git-svn-id: svn://10.0.0.236/trunk@10551 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 17:06:05 +00:00
ramiro%netscape.com
283c2c2a9c Add a comment in place of broken feature.
git-svn-id: svn://10.0.0.236/trunk@10550 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 16:14:06 +00:00
ramiro%netscape.com
d1409f23fa Fix a typo.
git-svn-id: svn://10.0.0.236/trunk@10549 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 16:13:44 +00:00
ramiro%netscape.com
f3918106e8 A better name. layout_frozen instead of ignore_configure.
git-svn-id: svn://10.0.0.236/trunk@10548 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 16:01:12 +00:00
ramiro%netscape.com
63e37513dd Allow each toolbar child's width/height to be forced to the max individually.
Before, it was either all or nothing which was bad when getting dynamic
toolbars to work, especially with complicated toolbar items such as a
combo box.


git-svn-id: svn://10.0.0.236/trunk@10547 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 13:32:41 +00:00
ramiro%netscape.com
8d67666fe5 Move unused Splash.cpp into an ifdef NSPR_SPLASH.
git-svn-id: svn://10.0.0.236/trunk@10546 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 11:29:58 +00:00
ramiro%netscape.com
427cec04c9 Fix a type and update autoconf makefile.
git-svn-id: svn://10.0.0.236/trunk@10545 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 11:22:41 +00:00
ramiro%netscape.com
060696ebcd Remove taskbar widget and use toolbar instead. UNBLOAT.
git-svn-id: svn://10.0.0.236/trunk@10544 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 11:05:00 +00:00
ramiro%netscape.com
eb6509d939 Un-break MOZ_TASKBAR.
git-svn-id: svn://10.0.0.236/trunk@10543 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 09:18:38 +00:00
ramiro%netscape.com
32e7febdab Add missing rep type.
git-svn-id: svn://10.0.0.236/trunk@10542 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 08:37:33 +00:00
ramiro%netscape.com
c8d8550d35 Use a better name: FIXED_SIZE instead of OFFSET.
git-svn-id: svn://10.0.0.236/trunk@10541 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 06:48:31 +00:00
ramiro%netscape.com
bf118b3d3d Simplufy the XFE_RDFChromeTreeView class by using a divider instead of all
those broken XmForm hacks.


git-svn-id: svn://10.0.0.236/trunk@10540 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 06:39:43 +00:00
ramiro%netscape.com
8f5d66c624 More modularization changes. Move all the string defs and registration
functions to the respective places where they are needed.  Also cleanup up
a bunch of children info stuff.


git-svn-id: svn://10.0.0.236/trunk@10539 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 06:38:24 +00:00
ramiro%netscape.com
32bdffd1b0 Add #include <Xfe/Cascade.h>.
git-svn-id: svn://10.0.0.236/trunk@10538 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 06:34:28 +00:00
ramiro%netscape.com
a8c02ff8ad Fix crash when creating a chromeless window. Dont de-reference a NULL
toolbar.


git-svn-id: svn://10.0.0.236/trunk@10537 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 06:33:35 +00:00
ramiro%netscape.com
c6aad7fa64 Add divider.
git-svn-id: svn://10.0.0.236/trunk@10536 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 06:32:11 +00:00
rpotts%netscape.com
ca38b8546f Added NPL and made the implementation threadsafe.
git-svn-id: svn://10.0.0.236/trunk@10535 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 05:56:41 +00:00
rpotts%netscape.com
32ede4839b Added NPL and fixed typo in GUID #define
git-svn-id: svn://10.0.0.236/trunk@10534 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 05:56:11 +00:00
rpotts%netscape.com
c706bf9b24 Added missing NS_RELEASE(...)
git-svn-id: svn://10.0.0.236/trunk@10533 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 05:28:25 +00:00
rpotts%netscape.com
d0c8f23dbc Fixed nettest to work with threaded netlib...
git-svn-id: svn://10.0.0.236/trunk@10531 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 05:13:42 +00:00
buster%netscape.com
1524945a4b captions now work properly with new frame layout strategy.
nsTableOuterFrame->mFirstChild==nsTableOuterFrame->mInnerTableFrame, always.


git-svn-id: svn://10.0.0.236/trunk@10530 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 04:50:08 +00:00
brendan%netscape.com
0bca4e931e Fix last checkin.
git-svn-id: svn://10.0.0.236/trunk@10528 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 02:58:41 +00:00
wtc%netscape.com
ed3165f8cc Removed the NSPR20 macro definition for XP_MAC.
git-svn-id: svn://10.0.0.236/trunk@10527 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 01:04:58 +00:00
wtc%netscape.com
23894090e4 Compile this file only if HAVE_SNPRINTF is not defined so that we
won't accidentally override the system's snprintf and vsnprintf
functions.  This patch is contributed by Soren Juul Moller <sjm@nwc.dk>.


git-svn-id: svn://10.0.0.236/trunk@10526 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 00:58:30 +00:00
wtc%netscape.com
d01d831960 Backed out the HAVE_LONG_LONG change temporarily because
it breaks binary compatibility.  We will put it back in
after the v3.0 release is branched off.


git-svn-id: svn://10.0.0.236/trunk@10525 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 00:50:31 +00:00
wtc%netscape.com
1530a9b3df Bug fix: If the envp argument for PR_CreateProcess is NULL,
call execv (instead of execve) so that the new process inherits
the environment of the parent process.


git-svn-id: svn://10.0.0.236/trunk@10524 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 00:21:35 +00:00
wtc%netscape.com
4862b6113f Renamed the 'index' argument for PR_Get/SetThreadPrivate to 'tpdIndex'.
This is because BSD systems have a funciton named 'index' in
<string.h>, and if you compile with the -Wshadow flag, gcc warns
that our declaration of `index' shadows global declaration.
Thanks to Ben Laurie <ben@algroup.co.uk> for the problem report
and the suggested workaround.


git-svn-id: svn://10.0.0.236/trunk@10523 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 00:18:18 +00:00
troy%netscape.com
bb6e9bfbd9 Work in progress for displaying icon while laoding image...
git-svn-id: svn://10.0.0.236/trunk@10522 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-20 00:08:24 +00:00
wtc%netscape.com
ee405299d7 Added the 'const' qualifier to the 'fmt' argument for PR_FormatTime.
This patch is contributed by Ben Laurie <ben@algroup.co.uk>.
Files changed: prtime.h and prtime.c.


git-svn-id: svn://10.0.0.236/trunk@10521 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 23:52:13 +00:00
blizzard%appliedtheory.com
a750ddf2ea Bring autoconf build into sync with non-autoconf build
git-svn-id: svn://10.0.0.236/trunk@10520 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 22:40:53 +00:00
blizzard%appliedtheory.com
02582a5d11 Bring autoconf build up to date with non-autoconf build
git-svn-id: svn://10.0.0.236/trunk@10519 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 22:28:51 +00:00
morse%netscape.com
0c6461d468 fix up wording in cookie nag box
git-svn-id: svn://10.0.0.236/trunk@10516 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 16:27:16 +00:00
morse%netscape.com
769ce4cff2 avoid js crash in cookie viewer if cookie->host or cookie->path contain a quote
git-svn-id: svn://10.0.0.236/trunk@10515 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 15:15:59 +00:00
mcafee%netscape.com
691dfa71eb Adding support for Rhapsody
git-svn-id: svn://10.0.0.236/trunk@10514 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 08:51:59 +00:00
mcafee%netscape.com
7f4d9acaeb Rhapsody doesn't like to link with -m
git-svn-id: svn://10.0.0.236/trunk@10513 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 08:48:00 +00:00
mcafee%netscape.com
4a2e9a7966 Fixing Linux breakage
git-svn-id: svn://10.0.0.236/trunk@10512 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 08:42:51 +00:00
mcafee%netscape.com
b8d1e851dd Adding support for non-Linux OS's
git-svn-id: svn://10.0.0.236/trunk@10511 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 08:25:04 +00:00
mcafee%netscape.com
77f908d781 Adding more portable link line for non-Linux OS's
git-svn-id: svn://10.0.0.236/trunk@10510 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:49:42 +00:00
mcafee%netscape.com
39523b600e Initial stub version for Rhapsody
git-svn-id: svn://10.0.0.236/trunk@10509 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:31:47 +00:00
mcafee%netscape.com
bbc3e473b7 Adding support for Rhapsody
git-svn-id: svn://10.0.0.236/trunk@10508 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:21:28 +00:00
mcafee%netscape.com
7b0dbb4932 Initial version for Rhapsody
git-svn-id: svn://10.0.0.236/trunk@10507 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:21:02 +00:00
rpotts%netscape.com
9bda26caf9 Added new file nsNetThread.cpp
git-svn-id: svn://10.0.0.236/trunk@10506 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:09:45 +00:00
rpotts%netscape.com
5d24c277c9 Added a new file nsNetThread.cpp and the NETLIB_THREAD define
git-svn-id: svn://10.0.0.236/trunk@10505 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:08:47 +00:00
rpotts%netscape.com
dc73b41e94 changed the nsNetService to create a dedicated thread for netlib (on windows only for now)
git-svn-id: svn://10.0.0.236/trunk@10504 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:08:09 +00:00
rpotts%netscape.com
2845e43acc Made the nsISupports interface threadsafe...
git-svn-id: svn://10.0.0.236/trunk@10503 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:06:48 +00:00
rpotts%netscape.com
1ff3503847 Made the nsISupports and nsIRefreshURL interfaces threadsafe...
git-svn-id: svn://10.0.0.236/trunk@10502 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:06:07 +00:00
rpotts%netscape.com
39dc7e01c5 Added NSPR DLL to the link which is required for monitors...
git-svn-id: svn://10.0.0.236/trunk@10501 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:04:00 +00:00
rpotts%netscape.com
97fe271a46 made URLImpl threadsafe...
git-svn-id: svn://10.0.0.236/trunk@10500 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:03:19 +00:00
rpotts%netscape.com
da9754e0a3 Made the netlib blocking stream work correctly when netlib is running on its own thread
git-svn-id: svn://10.0.0.236/trunk@10499 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:02:25 +00:00
rpotts%netscape.com
7ba26a9d15 Fixed the reference counting of the URL_Struct being held by the HttpUrl.
git-svn-id: svn://10.0.0.236/trunk@10498 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 07:00:29 +00:00
rpotts%netscape.com
9536efd914 new files which create a dedicated thread for netlib
git-svn-id: svn://10.0.0.236/trunk@10497 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:59:33 +00:00
mcafee%netscape.com
cb0dad87de Adding support for Rhapsody
git-svn-id: svn://10.0.0.236/trunk@10496 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:58:53 +00:00
rpotts%netscape.com
e5b7068791 Added correct NPL
git-svn-id: svn://10.0.0.236/trunk@10495 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:58:32 +00:00
mcafee%netscape.com
90a096689a Initial version, copied from ../unix
git-svn-id: svn://10.0.0.236/trunk@10494 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:58:15 +00:00
rpotts%netscape.com
005e45fa59 enabled thread-safe code which was previously only used when JAVA was defined.
git-svn-id: svn://10.0.0.236/trunk@10493 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:57:29 +00:00
rpotts%netscape.com
da5741d35d Made nsTraceRefcnt threadsafe...
git-svn-id: svn://10.0.0.236/trunk@10492 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:56:22 +00:00
rpotts%netscape.com
70590f0a2a Added threadsafe implementations of Addref()/Release()/QueryInterface()
git-svn-id: svn://10.0.0.236/trunk@10491 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:55:30 +00:00
rpotts%netscape.com
1ab1258079 Enabled netlib lock when NS_MT_SUPPORTED is defined
git-svn-id: svn://10.0.0.236/trunk@10490 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:54:17 +00:00
rpotts%netscape.com
8db0346764 Turned on Multi-threaded define for windows... (NGLayout only)
git-svn-id: svn://10.0.0.236/trunk@10489 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:50:43 +00:00
mcafee%netscape.com
201d6cafda Adding support for non-X11 Unix systems
git-svn-id: svn://10.0.0.236/trunk@10488 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:21:01 +00:00
terry%netscape.com
dbab632bf4 Whoops. Ignore anything that tries to override the version number in
the params file.


git-svn-id: svn://10.0.0.236/trunk@10487 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:20:13 +00:00
mcafee%netscape.com
437157a453 Fixing -lm not found link error when linking libimg.
git-svn-id: svn://10.0.0.236/trunk@10486 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:20:10 +00:00
terry%netscape.com
6169849f2e Updated version string to 2.1 (development)
git-svn-id: svn://10.0.0.236/trunk@10485 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:08:15 +00:00
terry%netscape.com
590b42958c Updated version string to 2.0 (shipping)
git-svn-id: svn://10.0.0.236/trunk@10483 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 06:02:20 +00:00
terry%netscape.com
9766a1b60c Make it clear to people that "%version%" will work.
git-svn-id: svn://10.0.0.236/trunk@10482 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 05:48:09 +00:00
terry%netscape.com
9a9d2d401d Change default banner to include version info.
git-svn-id: svn://10.0.0.236/trunk@10481 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 05:47:54 +00:00
troy%netscape.com
4046dc8f39 Changes to nsIFrame
git-svn-id: svn://10.0.0.236/trunk@10480 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 05:03:08 +00:00
terry%netscape.com
de647fe34d Updated version string to 1.3 (development)
git-svn-id: svn://10.0.0.236/trunk@10479 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 04:52:13 +00:00
terry%netscape.com
c8c5bd886a Add simple support for a version string.
git-svn-id: svn://10.0.0.236/trunk@10478 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 04:38:12 +00:00
troy%netscape.com
fcf6ebb325 Changed FrameInserted incremental reflow code to insert the new frame
into the child frame list


git-svn-id: svn://10.0.0.236/trunk@10477 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 04:29:36 +00:00
troy%netscape.com
82c24af034 Removed farme enumeration member functions for indexed access, last child,
and child count


git-svn-id: svn://10.0.0.236/trunk@10475 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 03:24:26 +00:00
ftang%netscape.com
c04615a2c8 fix mac
git-svn-id: svn://10.0.0.236/trunk@10474 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 03:00:21 +00:00
terry%netscape.com
e3271696e2 Patch from Sam Ziegler <ziegler@mediaguaranty.com> -- Don't choke if argv is empty.
git-svn-id: svn://10.0.0.236/trunk@10473 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 02:35:09 +00:00
terry%netscape.com
48fc7dd684 Patch from Sam Ziegler <ziegler@mediaguaranty.com> -- add the URL for TiemDate.
git-svn-id: svn://10.0.0.236/trunk@10472 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 02:34:41 +00:00
pierre%netscape.com
0c5cda0630 added DoResizeWidgets()
git-svn-id: svn://10.0.0.236/trunk@10471 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:40:26 +00:00
pierre%netscape.com
55664594c2 added DoResizeWidgets() + fixed Create to handle resize events + imported minor fixes from Windows
git-svn-id: svn://10.0.0.236/trunk@10470 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:40:13 +00:00
pierre%netscape.com
55be47f4b9 use PR_IntervalNow() for mLastRefresh
git-svn-id: svn://10.0.0.236/trunk@10469 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:39:47 +00:00
pierre%netscape.com
ec7bff8ef9 use UnitConversion macros + some cleanup in DrawString
git-svn-id: svn://10.0.0.236/trunk@10468 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:38:51 +00:00
pierre%netscape.com
be6891db14 added 'demo #0'
git-svn-id: svn://10.0.0.236/trunk@10467 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:38:37 +00:00
pierre%netscape.com
1182fd5611 implemented resize events and redraw on resize
git-svn-id: svn://10.0.0.236/trunk@10466 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:38:26 +00:00
pierre%netscape.com
63d4ed7613 use UnitConversion macros + some cleanup in GetWidth
git-svn-id: svn://10.0.0.236/trunk@10465 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:38:10 +00:00
raman%netscape.com
b7141cc833 Added support for unsigned JAR files. This feature is controlled by a preference
git-svn-id: svn://10.0.0.236/trunk@10464 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:27:20 +00:00
raman%netscape.com
a36626c6b7 Added a preference to control unsigned JAR files for SmartUpdate
git-svn-id: svn://10.0.0.236/trunk@10463 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:26:21 +00:00
raman%netscape.com
394241f708 Added AllJavaPermission target to give complete access to all permissions in Javasoft's JVM
git-svn-id: svn://10.0.0.236/trunk@10462 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:25:32 +00:00
raman%netscape.com
92d1f8dbfc Added AllJavaPermission target to give complete access to all permissions in Javasoft's JVM
git-svn-id: svn://10.0.0.236/trunk@10461 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:25:05 +00:00
despotdaemon%netscape.com
c8f993367d Pseudo-automatic update of changes made by alecf@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10460 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:10:33 +00:00
despotdaemon%netscape.com
1b6dcf963b Pseudo-automatic update of changes made by terry@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10459 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:03:27 +00:00
wtc%netscape.com
6a3fdcf92b Moved the obsolete function PR_SetStdioRedirect from probslet.h
back to prproces.h because we don't want to break source
compatibility in this release.


git-svn-id: svn://10.0.0.236/trunk@10458 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 01:00:52 +00:00
ftang%netscape.com
15a65a6da1 Make the history entry to store UTF8 text. We will graduately change FE code also to deal with UTF8 in history database. We need this to make the RDF history access correctly handle Multilingual text
git-svn-id: svn://10.0.0.236/trunk@10457 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 00:33:04 +00:00
ftang%netscape.com
66c7934273 fix bug 147200 by merge nova code
git-svn-id: svn://10.0.0.236/trunk@10456 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 00:30:31 +00:00
ftang%netscape.com
729e100574 Fix the DrawText problem
git-svn-id: svn://10.0.0.236/trunk@10455 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 00:27:03 +00:00
ftang%netscape.com
1aa599717a fix 147200 by merge nova code
git-svn-id: svn://10.0.0.236/trunk@10454 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 00:25:16 +00:00
ftang%netscape.com
cddd352fe4 fix bug 147200 by merge code from nova
git-svn-id: svn://10.0.0.236/trunk@10453 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 00:23:58 +00:00
ftang%netscape.com
c43a7fc0eb fix bug 147200 by merge code from nova
1. Add t61 conversion table
2. change Japanese conversion table on window to use the cp932 table instead.


git-svn-id: svn://10.0.0.236/trunk@10452 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 00:22:09 +00:00
ftang%netscape.com
681f028c40 fix 147200. merged from nova
git-svn-id: svn://10.0.0.236/trunk@10451 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 00:18:00 +00:00
raman%netscape.com
9fab93c0d3 Added CertChain Principal support for Javasoft. Added calls for AskPermission and SetPermission
git-svn-id: svn://10.0.0.236/trunk@10450 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 00:06:44 +00:00
pierre%netscape.com
80554f1b46 added nsScrollbar to fix a build breakage
git-svn-id: svn://10.0.0.236/trunk@10449 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 23:51:30 +00:00
pierre%netscape.com
fb31c68e28 Replaced a faulty line with NS_ERROR in order to fix a build breakage. Don will do the right thing later.
git-svn-id: svn://10.0.0.236/trunk@10448 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 23:50:04 +00:00
pierre%netscape.com
fb8add8fab remove outdated manifest files
(closed tree override: raptor build only)


git-svn-id: svn://10.0.0.236/trunk@10447 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 23:47:52 +00:00
sman%netscape.com
b7358826c8 minor updates to layers.
git-svn-id: svn://10.0.0.236/trunk@10446 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 22:54:48 +00:00
troy%netscape.com
b6ecc473ac Attempt number three...
git-svn-id: svn://10.0.0.236/trunk@10445 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 22:54:16 +00:00
troy%netscape.com
07d650b35f Attempt number two...
git-svn-id: svn://10.0.0.236/trunk@10444 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 22:51:36 +00:00
troy%netscape.com
e2934b277d Attempt number one to fix Linux builds...
git-svn-id: svn://10.0.0.236/trunk@10443 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 22:49:15 +00:00
buster%netscape.com
41b4acb09b made sure that all attributes respect their minimum values as per HTML 4 spec.
fixed some comments.


git-svn-id: svn://10.0.0.236/trunk@10442 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 22:39:16 +00:00
pierre%netscape.com
b5c9c71f16 removed nsIContentDelegate.h
git-svn-id: svn://10.0.0.236/trunk@10441 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 22:38:19 +00:00
buster%netscape.com
d92ddd9be2 added ColIsSpannedInto, ColHasSpanningCells
moved *IsSpannedInto and *HasSpanningCells into cellmap, giving us the oppurtunity
to easily cache results if we want.  These methods are still accessed through nsTableFrame.
changed nsTableFrame::GetCellAt to nsTableFrame::GetCellFrameAt to make it more clear what
the method returns:  a frame, not content.


git-svn-id: svn://10.0.0.236/trunk@10440 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 22:37:14 +00:00
spider%netscape.com
b86ce5eb47 WIP: UnicodeString -> nsString
git-svn-id: svn://10.0.0.236/trunk@10439 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 22:18:44 +00:00
cyeh%netscape.com
ad2a89277e add *.cpp file to fix bustage. really. this time i mean it.
git-svn-id: svn://10.0.0.236/trunk@10438 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 21:52:14 +00:00
spider%netscape.com
7e4368016a Fix windows build bustage
git-svn-id: svn://10.0.0.236/trunk@10437 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 21:42:28 +00:00
troy%netscape.com
037f575ef2 Changes to ContentInserted() handler
git-svn-id: svn://10.0.0.236/trunk@10436 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 21:28:21 +00:00
norris%netscape.com
a9b08a59ee Remove ECMA v2 versioning since v2 is far from settled and we don't know which JavaScript version will implement it.
git-svn-id: svn://10.0.0.236/trunk@10435 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 20:40:35 +00:00
norris%netscape.com
8dd8360df1 Update version number and release date. Use the date of our next customer drop.
git-svn-id: svn://10.0.0.236/trunk@10434 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 20:35:09 +00:00
rogerl%netscape.com
3a8f1c97b7 Bug #315139 (aka 104859). Some discrepancies between JS1.2 behaviour for
matching at empty pattern at end of string. I'm not real confident of
this fix since it removes code that seems to explicitly address the issue,
but it does fix the bug.


git-svn-id: svn://10.0.0.236/trunk@10433 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 20:22:59 +00:00
rogerl%netscape.com
278d3c31db Bug #316839. Re-allocation of space for flat1/flat coalesce wasn't using
sizeof(jschar).


git-svn-id: svn://10.0.0.236/trunk@10432 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 20:20:53 +00:00
jband%netscape.com
79eda77222 (not part of client build) added short description to each source file
git-svn-id: svn://10.0.0.236/trunk@10430 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 19:56:45 +00:00
troy%netscape.com
95d9362a90 Added AttributeChanged() member function for communicating attribute value
changes to the frame


git-svn-id: svn://10.0.0.236/trunk@10429 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 19:53:27 +00:00
spider%netscape.com
43c60ab967 Misc fixes for building trex on unix
git-svn-id: svn://10.0.0.236/trunk@10428 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 19:00:22 +00:00
spider%netscape.com
8276a767de export header files for calendar
git-svn-id: svn://10.0.0.236/trunk@10427 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 18:59:50 +00:00
cyeh%netscape.com
1386512ee7 add needed export for nsMalloc::Create
git-svn-id: svn://10.0.0.236/trunk@10426 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 18:57:35 +00:00
spider%netscape.com
52fe0546c9 exporting classes to get julian to link with nlsstub
git-svn-id: svn://10.0.0.236/trunk@10425 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 18:45:50 +00:00
spider%netscape.com
e3dc03c00d IRIX depend fixes
git-svn-id: svn://10.0.0.236/trunk@10424 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 18:29:14 +00:00
spider%netscape.com
c5c7024db2 Unix fixes for free source julian code
git-svn-id: svn://10.0.0.236/trunk@10423 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 18:22:27 +00:00
fur%netscape.com
0f8f315f7b We decided not to create mini-NSPR
git-svn-id: svn://10.0.0.236/trunk@10421 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 18:09:26 +00:00
spider%netscape.com
fde3223be8 WIP: nlsstub implementation, NPL added to all of nlsstub
git-svn-id: svn://10.0.0.236/trunk@10420 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 18:06:30 +00:00
troy%netscape.com
d670e0e0a8 Removed CreateFrame() from nsIHTMLContent
git-svn-id: svn://10.0.0.236/trunk@10419 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 18:04:42 +00:00
troy%netscape.com
b0bdb9e357 Removed nsIContentDelegate.h
git-svn-id: svn://10.0.0.236/trunk@10418 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 17:34:48 +00:00
troy%netscape.com
b60923ad33 Removed content delegates
git-svn-id: svn://10.0.0.236/trunk@10417 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 17:18:37 +00:00
spider%netscape.com
9d4f222984 Updates to pull the latest free source calendar code
git-svn-id: svn://10.0.0.236/trunk@10416 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 16:26:58 +00:00
spider%netscape.com
7bedfe4f94 Adding nsIModel interface
git-svn-id: svn://10.0.0.236/trunk@10415 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 16:18:50 +00:00
warren%netscape.com
c3f4681a93 Added a copy of nsMalloc to get the build going.
git-svn-id: svn://10.0.0.236/trunk@10382 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 11:30:54 +00:00
warren%netscape.com
fa7106b147 Removed export for nsMalloc::Create.
git-svn-id: svn://10.0.0.236/trunk@10381 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 11:07:06 +00:00
warren%netscape.com
78de9ecbcc Fixes to eliminate nsINetworkManager
git-svn-id: svn://10.0.0.236/trunk@10380 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 10:48:12 +00:00
warren%netscape.com
7e1d05c8e7 Removed nsINetworkManager.h which is obsolete.
git-svn-id: svn://10.0.0.236/trunk@10379 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 10:28:45 +00:00
sar%netscape.com
03d031e481 We want a distinct build number for each build regardless of MOZILLA_OFFICIAL
status. This is needed for fullcircle, but it's also the right thing to do.

so add a target for build_number, and add it as a dependency to the export target
This affects win only, and I've tested it.


git-svn-id: svn://10.0.0.236/trunk@10378 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 10:09:15 +00:00
sar%netscape.com
d6fb21a0ed add nsMalloc.cpp per warren
git-svn-id: svn://10.0.0.236/trunk@10376 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 09:21:54 +00:00
warren%netscape.com
133deb962e Moved nsMalloc.cpp to modules/plugin/src.
git-svn-id: svn://10.0.0.236/trunk@10375 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 08:46:06 +00:00
warren%netscape.com
0cc33c826e Updated Mac MANIFEST files.
git-svn-id: svn://10.0.0.236/trunk@10374 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 08:39:16 +00:00
warren%netscape.com
84892de9bb Removed nsINetworkManager base class.
git-svn-id: svn://10.0.0.236/trunk@10373 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 08:35:11 +00:00
warren%netscape.com
1b2552d97a Removed nsINetworkManager.h include.
git-svn-id: svn://10.0.0.236/trunk@10372 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 07:45:24 +00:00
warren%netscape.com
9dad554faf Moved nsIMalloc and impl from xpcom to modules/plugin.
git-svn-id: svn://10.0.0.236/trunk@10370 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 07:22:48 +00:00
warren%netscape.com
8a3c9ecf3d Moved nsIMalloc and impl from xpcom.
git-svn-id: svn://10.0.0.236/trunk@10369 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 07:22:15 +00:00
warren%netscape.com
4dc47505d5 Eliminated nsINetworkManager and moved it's methods to nsIPluginManager/nsIPluginManager2.
git-svn-id: svn://10.0.0.236/trunk@10368 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 07:21:21 +00:00
ramiro%netscape.com
5580f46827 Fix build bustage, what a dumb ass.
git-svn-id: svn://10.0.0.236/trunk@10362 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 06:46:35 +00:00
ramiro%netscape.com
1cd966972f Move toolbar widgetry to its own library.
git-svn-id: svn://10.0.0.236/trunk@10361 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 06:44:53 +00:00
ramiro%netscape.com
b9e18a4de2 Move toolbar widgetry to its own library.
git-svn-id: svn://10.0.0.236/trunk@10360 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 06:12:45 +00:00
gagan%netscape.com
85642b9189 nucache based changes.
git-svn-id: svn://10.0.0.236/trunk@10359 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 05:52:24 +00:00
gagan%netscape.com
d5ec2468cc Streams fix for MemCache.
git-svn-id: svn://10.0.0.236/trunk@10358 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 05:49:47 +00:00
gagan%netscape.com
d440707c51 CacheStubs- Added InfoAsHTML for about:cache and CacheObject's Reset.
nsCacheManager- InfoAsHTML for about:cache.

nsCacheObject/nsMemStream- Reset function for rereads.


git-svn-id: svn://10.0.0.236/trunk@10357 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 05:49:01 +00:00
rpotts%netscape.com
8d1509f20c Fixed build bustage...
git-svn-id: svn://10.0.0.236/trunk@10356 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 05:25:15 +00:00
troy%netscape.com
873b42bab8 Fixed a compiler warning
git-svn-id: svn://10.0.0.236/trunk@10355 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 03:13:47 +00:00
troy%netscape.com
2abf0e6c62 Removed an unreferenced label
git-svn-id: svn://10.0.0.236/trunk@10354 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 03:10:00 +00:00
troy%netscape.com
28b7bca233 Removed some dead code
git-svn-id: svn://10.0.0.236/trunk@10353 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 03:08:23 +00:00
briano%netscape.com
8cc219ef2a Support for QNX.
git-svn-id: svn://10.0.0.236/trunk@10352 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:58:04 +00:00
ramiro%netscape.com
11a6d6003a Fix the "it hangs for ever" problem.
git-svn-id: svn://10.0.0.236/trunk@10351 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:57:31 +00:00
briano%netscape.com
ffe4c93b9c Try to support QNX. Need to hack gcc to get it to build/run on this OS ASAP....
git-svn-id: svn://10.0.0.236/trunk@10350 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:51:39 +00:00
briano%netscape.com
d9c5508b3d Minor change to support OpenBSD and clean up NetBSD.
git-svn-id: svn://10.0.0.236/trunk@10349 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:47:54 +00:00
troy%netscape.com
6a903efb38 Added CreateContinuingFrame()
git-svn-id: svn://10.0.0.236/trunk@10348 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:47:03 +00:00
troy%netscape.com
89adfdbbe4 Removed CreateContinuingFrame()
git-svn-id: svn://10.0.0.236/trunk@10347 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:46:42 +00:00
sudu%netscape.com
521eac7fdf Removed dependancy on caps/oji plugin stuff in building liveconnect
git-svn-id: svn://10.0.0.236/trunk@10342 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:28:50 +00:00
troy%netscape.com
752499e0be Removed some old commented out code
git-svn-id: svn://10.0.0.236/trunk@10341 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:28:12 +00:00
troy%netscape.com
ab310b46a0 Removed some code that's no longer needed now that we've switched to
new frame construction


git-svn-id: svn://10.0.0.236/trunk@10340 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:22:52 +00:00
briano%netscape.com
3f1e9d981d Got rid of the pointless LINUXy_z macros (again), and made some minor tweaks for ARM systems (NetWinder).
git-svn-id: svn://10.0.0.236/trunk@10339 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:16:44 +00:00
wtc%netscape.com
5f37fc94d7 Added PR_ProcessAttrSetCurrentDirectory to allow setting the current
working directory of the new process.  PR_SetStdioRedirect is renamed
PR_ProcessAttrSetStdioRedirect.  The old name is retained but moved
to obsolete/probslet.h.  This work is contributed by Ben Laurie
<ben@algroup.co.ul>.
Files changed: prproces.h, probslet.h, primpl.h, uxproces.c, ntmisc.c,
prinit.c, and parent.c.


git-svn-id: svn://10.0.0.236/trunk@10338 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:15:21 +00:00
troy%netscape.com
2ee95ba6e1 Added NS_INIT_REFCNT() to constructor
git-svn-id: svn://10.0.0.236/trunk@10337 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 02:05:46 +00:00
jfrancis%netscape.com
0bbea4a406 Redoing Ender toolbar.
git-svn-id: svn://10.0.0.236/trunk@10336 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 01:38:51 +00:00
warren%netscape.com
aabefb01c6 Abstracted away need for JavaVM object and GetJavaVM plugin API call.
git-svn-id: svn://10.0.0.236/trunk@10335 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 01:29:08 +00:00
jfrancis%netscape.com
49a55eb55e Redoing Ender toolbar.
git-svn-id: svn://10.0.0.236/trunk@10334 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 01:24:28 +00:00
jfrancis%netscape.com
3107ffa7bd Redoing Ender toolbar
git-svn-id: svn://10.0.0.236/trunk@10333 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 01:23:45 +00:00
warren%netscape.com
85fa7333b6 Fixed comments.
git-svn-id: svn://10.0.0.236/trunk@10332 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 01:23:04 +00:00
jfrancis%netscape.com
0452c5d0d8 Redoing the Ender toolbar
git-svn-id: svn://10.0.0.236/trunk@10331 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 01:22:28 +00:00
jband%netscape.com
c878b932b0 (not part of client build) added call/return hooks to js_Invoke and js_Execute. Also added additional accessors to jsdbgapi for JSStackFrame contents. This will better facilitate tracking exceptions as they propagate up the stack, allow for faster stepping schemes, and support less intrusive tracing/profiling schemes.
git-svn-id: svn://10.0.0.236/trunk@10329 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 00:57:11 +00:00
troy%netscape.com
d2df7b2380 Removed some commented out code that's not needed now that we're using the
new frame construction


git-svn-id: svn://10.0.0.236/trunk@10328 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 00:49:40 +00:00
joki%netscape.com
44d5557928 Adding targetting of any named window
git-svn-id: svn://10.0.0.236/trunk@10327 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 00:35:55 +00:00
jgellman%netscape.com
edc8218b01 Remove java API from the build.
git-svn-id: svn://10.0.0.236/trunk@10326 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 00:10:15 +00:00
troy%netscape.com
65a64892ea Removed some code that's no longer needed with the new frame construction code
git-svn-id: svn://10.0.0.236/trunk@10325 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 00:04:55 +00:00
troy%netscape.com
59c46e5471 Removed some code that's no longer needed now that tables are using the
new frame construction code


git-svn-id: svn://10.0.0.236/trunk@10324 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 23:54:47 +00:00
mccabe%netscape.com
6d3c8c3245 Propagate mcafee compile-warning fixes from js/src.
git-svn-id: svn://10.0.0.236/trunk@10323 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 23:48:20 +00:00
troy%netscape.com
6ab448b5ac Removed code that's no longer needed now that tables are using new
frame construction code


git-svn-id: svn://10.0.0.236/trunk@10322 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 23:46:16 +00:00
ebina%netscape.com
a08fa2244d "This doesn't make it work, but it makes it 'better'" - Kipp
git-svn-id: svn://10.0.0.236/trunk@10321 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 22:08:35 +00:00
beard%netscape.com
22e6878541 09171998 LiveConnect Carpool: build bustage: false -> PR_FALSE.
git-svn-id: svn://10.0.0.236/trunk@10320 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 22:03:45 +00:00
jsun%netscape.com
776c60206d No change.
Just wanted to notify Mozilla, Gromit trees that my
checkins (in mozilla\modules\calendar) are not being build by Mozilla or Gromit.

Only Calendar should build these files.


git-svn-id: svn://10.0.0.236/trunk@10318 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 21:40:43 +00:00
kipp%netscape.com
4e20f650e6 Register inet service so that the test works again
git-svn-id: svn://10.0.0.236/trunk@10317 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 21:33:14 +00:00
kipp%netscape.com
90becafe72 Fixed deref of unitialized memory bug in URLImpl::Open
git-svn-id: svn://10.0.0.236/trunk@10316 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 21:32:52 +00:00
troy%netscape.com
54d2e9932f Changed some AddRef/Release calls overto use XP-COM macros
git-svn-id: svn://10.0.0.236/trunk@10315 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 21:27:22 +00:00
jsun%netscape.com
8e56243356 added the changeEventsOwnership method for moving events between calendars.
git-svn-id: svn://10.0.0.236/trunk@10314 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 21:24:52 +00:00
beard%netscape.com
4c83957aaa 09171998 LiveConnect Carpool
git-svn-id: svn://10.0.0.236/trunk@10313 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 20:41:00 +00:00
beard%netscape.com
ae218ef314 09171998 LiveConnect Carpool: build bustage.
git-svn-id: svn://10.0.0.236/trunk@10312 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 20:35:10 +00:00
beard%netscape.com
ada1dee2b0 09171998 LiveConnect Carpool: build bustage (backed out to 3.3 version)
git-svn-id: svn://10.0.0.236/trunk@10311 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 20:33:21 +00:00
troy%netscape.com
b17920e27e Changed some code to use NS_NEWPCOM and NS_DELETEXPCOM
git-svn-id: svn://10.0.0.236/trunk@10310 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 20:25:26 +00:00
beard%netscape.com
2646330d9e 09171998 LiveConnect Carpool: build bustage
git-svn-id: svn://10.0.0.236/trunk@10309 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 20:18:36 +00:00
beard%netscape.com
a6cd82d8fa 09171998 LiveConnect Carpool: build bustage.
git-svn-id: svn://10.0.0.236/trunk@10308 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 20:17:57 +00:00
spider%netscape.com
a279be7c89 Adding CalendarModel framework to core
git-svn-id: svn://10.0.0.236/trunk@10307 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 20:14:25 +00:00
kostello%netscape.com
d409292d6e Fixed textfield problems from widget changes.
git-svn-id: svn://10.0.0.236/trunk@10306 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 20:07:15 +00:00
troy%netscape.com
71760eac75 Replaced some AddRef() and Release() calls with the XP-COM macros
git-svn-id: svn://10.0.0.236/trunk@10305 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 20:02:04 +00:00
valeski%netscape.com
22ce87e890 Now nulling out a variable that was causing a crash on url open.
git-svn-id: svn://10.0.0.236/trunk@10304 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:56:30 +00:00
beard%netscape.com
51cd10b5a9 09171998 LiveConnect Carpool: added export for nsRepository::UnregisterFactory(const nsID&,nsIFactory*).
git-svn-id: svn://10.0.0.236/trunk@10303 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:55:08 +00:00
troy%netscape.com
21960f2897 Changed some AddRef() and Release() calls to use the XP-COM macros
git-svn-id: svn://10.0.0.236/trunk@10302 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:49:10 +00:00
beard%netscape.com
d156d485ce 09171998 LiveConnect Carpool: XP_MAC, added #define of JSJDLL, and preregistering the nsILiveconnect factory.
git-svn-id: svn://10.0.0.236/trunk@10301 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:39:46 +00:00
beard%netscape.com
ea3cae2a29 09171998 LiveConnect Carpool: #ifndef NS_EXPORT, to not conflict with nsCom.h definition.
git-svn-id: svn://10.0.0.236/trunk@10300 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:22:39 +00:00
sudu%netscape.com
4688f0e06e including config.mak to get default MOZ_OJI flag being set in config
git-svn-id: svn://10.0.0.236/trunk@10299 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:22:38 +00:00
beard%netscape.com
1938753e23 09171998 LiveConnect Carpool: XP_MAC, fixed NS_EXPORT to actually export on the Mac.
git-svn-id: svn://10.0.0.236/trunk@10298 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:21:43 +00:00
sman%netscape.com
7609d1d6bc moved some files from shell to core
git-svn-id: svn://10.0.0.236/trunk@10297 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:21:04 +00:00
beard%netscape.com
576429899f 09171998 LiveConnect Carpool
git-svn-id: svn://10.0.0.236/trunk@10296 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:20:20 +00:00
beard%netscape.com
de85d9e164 First Checked In.
git-svn-id: svn://10.0.0.236/trunk@10295 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:15:15 +00:00
sudu%netscape.com
4a1c1f1011 removed c++ style comments
git-svn-id: svn://10.0.0.236/trunk@10294 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 19:06:00 +00:00
sudu%netscape.com
4a658933f1 Added nsCCodeSourcePrinicipal.h to export line
git-svn-id: svn://10.0.0.236/trunk@10291 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:49:51 +00:00
sudu%netscape.com
3435dc668b Included confg.mk so that MOZ_OJI flag gets picked up from there. Else liveonnect dir would not be traversed
git-svn-id: svn://10.0.0.236/trunk@10290 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:35:15 +00:00
sudu%netscape.com
892dd2f1aa Added caps in the include line
git-svn-id: svn://10.0.0.236/trunk@10289 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:32:45 +00:00
sudu%netscape.com
6f6bc9a46b Moved NPL_Init after RDF_Init as NPL_Init depends on RDF stuff via caps manager
git-svn-id: svn://10.0.0.236/trunk@10288 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:31:47 +00:00
sman%netscape.com
c8c3a3a102 reorganize data loading.
git-svn-id: svn://10.0.0.236/trunk@10287 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:28:53 +00:00
sudu%netscape.com
9f4d3b87f6 Added new XPCOM apis to liveconnect
git-svn-id: svn://10.0.0.236/trunk@10285 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:21:49 +00:00
terry%netscape.com
c8e4c168d6 Oops. Last checkin had more ambitious code than I meant in it.
git-svn-id: svn://10.0.0.236/trunk@10284 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:21:03 +00:00
sudu%netscape.com
c81d4ecd99 removing jni files which were placed by mistake in _jri dir
git-svn-id: svn://10.0.0.236/trunk@10283 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:18:16 +00:00
sudu%netscape.com
adf1a3ab65 Resurrecting the files which were placed in wrong dir _jri
git-svn-id: svn://10.0.0.236/trunk@10282 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:17:04 +00:00
terry%netscape.com
fc54758da9 Give my full e-mail address.
git-svn-id: svn://10.0.0.236/trunk@10281 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:16:01 +00:00
sudu%netscape.com
e1bee63656 New xpcom liveconnect apis
git-svn-id: svn://10.0.0.236/trunk@10280 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:13:55 +00:00
sudu%netscape.com
d59e07a06e New caps manager related changes
git-svn-id: svn://10.0.0.236/trunk@10279 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:12:52 +00:00
sudu%netscape.com
44ef09dc26 Changed method signature of LM_GetJSPrincipalsFromJavaCaller
git-svn-id: svn://10.0.0.236/trunk@10278 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:12:40 +00:00
sudu%netscape.com
db497426f5 Fixed up regenerate rules for jni
git-svn-id: svn://10.0.0.236/trunk@10277 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:12:36 +00:00
sudu%netscape.com
a0b23975e0 New xpcom caps manager apis
git-svn-id: svn://10.0.0.236/trunk@10276 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:12:32 +00:00
kmcclusk%netscape.com
fb52d0e62d Added back missing nsTextField and nsTextArea widgets to the factory.
git-svn-id: svn://10.0.0.236/trunk@10275 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 17:55:24 +00:00
despotdaemon%netscape.com
bf1dbdd67e Pseudo-automatic update of changes made by cata@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10274 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 17:49:57 +00:00
spider%netscape.com
89cee3c002 Fix for build bustage
git-svn-id: svn://10.0.0.236/trunk@10273 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 17:43:49 +00:00
despotdaemon%netscape.com
8e62bce178 Pseudo-automatic update of changes made by terry@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10272 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 16:55:08 +00:00
kmcclusk%netscape.com
f6aaa1dadb Fix for Irix build.
git-svn-id: svn://10.0.0.236/trunk@10271 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 16:18:29 +00:00
kmcclusk%netscape.com
44a2bd0758 Added fix in nsCheckButton for IRIX build. Made OnPaint and OnResize virtual
in nsWindow.h, this fixes a bug when bringing up Sample5.


git-svn-id: svn://10.0.0.236/trunk@10270 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 15:31:18 +00:00
ramiro%netscape.com
2ed4fe8e98 Add xfeCmdClearUrlBar and deal with it in XFE_BrowserFrame.
git-svn-id: svn://10.0.0.236/trunk@10269 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 14:22:38 +00:00
ramiro%netscape.com
19a0b04a4d Add clearText().
git-svn-id: svn://10.0.0.236/trunk@10268 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 14:20:06 +00:00
ramiro%netscape.com
5426185681 Move the dynamic layout parts of XfeManager to their own superclass
XfeDynamicManager.  This will make it a lot easier to write complicated
layout functions, such as the fancy configurable toolbar stuff.
Renamed a bunch of poorly named methods and data members.


git-svn-id: svn://10.0.0.236/trunk@10267 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 14:11:54 +00:00
radha%netscape.com
012ffdbd4b Call createHTMLPane only once
git-svn-id: svn://10.0.0.236/trunk@10266 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 14:11:23 +00:00
radha%netscape.com
45b1862fe8 Create the HTML pane
git-svn-id: svn://10.0.0.236/trunk@10265 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 14:10:53 +00:00
ramiro%netscape.com
69ff0aa488 Fix default rdf toolbar layout.
git-svn-id: svn://10.0.0.236/trunk@10264 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 13:48:14 +00:00
dcone%netscape.com
09df69244e First scrollbar pass
git-svn-id: svn://10.0.0.236/trunk@10263 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 13:44:46 +00:00
ramiro%netscape.com
adcf99e250 Add button layout test.
git-svn-id: svn://10.0.0.236/trunk@10262 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 10:59:23 +00:00
morse%netscape.com
69565eea61 display domain name instead of host name if domain is setting a cookie
git-svn-id: svn://10.0.0.236/trunk@10261 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 10:30:45 +00:00
ramiro%netscape.com
f0a488a96d Add include path needed for HPUX 10.20.
Thanks to Ralf Hildebrandt <R.Hildebrandt@tu-bs.de> for pointing this out.


git-svn-id: svn://10.0.0.236/trunk@10260 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 10:02:40 +00:00
ramiro%netscape.com
ff64549bac Change 'static XtResource' to 'static const XtResource' types for resources.
Thanks to Joe Keane <jgk@jgk.org>.


git-svn-id: svn://10.0.0.236/trunk@10259 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 09:55:48 +00:00
pierre%netscape.com
402408abd7 fixing mac build: renamed the factory entry point
git-svn-id: svn://10.0.0.236/trunk@10258 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 09:17:39 +00:00
pierre%netscape.com
67c6327950 added the Layout and NetLib factories
git-svn-id: svn://10.0.0.236/trunk@10257 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 09:17:10 +00:00
pierre%netscape.com
882df377a4 added nsNetFactory
git-svn-id: svn://10.0.0.236/trunk@10256 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 09:16:23 +00:00
pierre%netscape.com
dbc1a1f79d added nsLayoutFactory
git-svn-id: svn://10.0.0.236/trunk@10255 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 09:14:36 +00:00
pierre%netscape.com
594d246987 added mozilla:layout:build:MANIFEST to the list
git-svn-id: svn://10.0.0.236/trunk@10254 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 08:50:39 +00:00
pierre%netscape.com
7ebf8f628a SetFont supports styles.
Drawstring doesn't draw the 0's in Unicode strings.


git-svn-id: svn://10.0.0.236/trunk@10253 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 08:08:26 +00:00
pierre%netscape.com
94027acd31 minor cleanup in GetXHeight, GetSuperscriptOffset and GetSubscriptOffset
git-svn-id: svn://10.0.0.236/trunk@10252 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 08:07:02 +00:00
pierre%netscape.com
f8e5880591 added GetMacFontNumber and CheckFontExistence
git-svn-id: svn://10.0.0.236/trunk@10251 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 07:51:12 +00:00
brendan%netscape.com
9dc6f1d1c7 Fix missing ->pseudos and speak the same boolean as the comment uses.
git-svn-id: svn://10.0.0.236/trunk@10250 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 07:43:13 +00:00
brendan%netscape.com
32a8aa7179 Pity the machines that lack long long (and be explicit when losing bits).
git-svn-id: svn://10.0.0.236/trunk@10249 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 06:46:20 +00:00
brendan%netscape.com
d80e0cf9a7 Keep windows building via xp.h, with an XXX comment.
git-svn-id: svn://10.0.0.236/trunk@10248 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 06:44:33 +00:00
rpotts%netscape.com
435c373c8d Fixed up usage of the NS_RELEASE2(...) macro.
git-svn-id: svn://10.0.0.236/trunk@10247 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 05:40:57 +00:00
rpotts%netscape.com
1ce4b0ca1a Changed NS_RELEASE2(...) macro to conditionally NULL the interface argument...
git-svn-id: svn://10.0.0.236/trunk@10246 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 05:38:21 +00:00
troy%netscape.com
64d4e5e4c5 Removed some XXX temp code that was needed until tables were switched
over to the new frame construction code


git-svn-id: svn://10.0.0.236/trunk@10245 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 04:57:50 +00:00
troy%netscape.com
fd4da3a3ed Removed some XXX frame construction work-in-progress code
git-svn-id: svn://10.0.0.236/trunk@10244 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 04:44:27 +00:00
troy%netscape.com
9ec1729d6e Cleaned up frame construction code
git-svn-id: svn://10.0.0.236/trunk@10243 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 04:07:58 +00:00
blizzard%appliedtheory.com
afc18ecdb3 Pixmap creation and updating now use gdk primitives
git-svn-id: svn://10.0.0.236/trunk@10242 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 04:07:14 +00:00
ramiro%netscape.com
60dfee6281 Build MOZ_MAIL_COMPOSE build bustage. Its MOZ_MAIL_COMPOSE, not MOZ_COMPOSE.
Also, a bunch of icons were not being linked in.


git-svn-id: svn://10.0.0.236/trunk@10241 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 03:56:45 +00:00
spider%netscape.com
e9417fee4e WIP: nlsstub implementation
git-svn-id: svn://10.0.0.236/trunk@10240 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 02:39:51 +00:00
spider%netscape.com
486a0b2450 Initial nlsstub implementation to remove libnls dependency
for free source execution


git-svn-id: svn://10.0.0.236/trunk@10239 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 02:07:28 +00:00
vidur%netscape.com
e792ef87b8 Added constructors for DOM JS classes. nsIScriptObjectOwner::ResetScriptObject is now SetScriptObject. New factory for layout. New interface nsIDOMNativeObjectRegistry.
git-svn-id: svn://10.0.0.236/trunk@10238 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 01:53:52 +00:00
slamm%netscape.com
4590c3ac53 Add back some security icons.
git-svn-id: svn://10.0.0.236/trunk@10237 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 01:35:01 +00:00
wtc%netscape.com
b4e70e6d93 Define HAVE_LONG_LONG on BSDI. (Acknowledgements: Bert Driehuis
<driehuis@playbeing.org>.)


git-svn-id: svn://10.0.0.236/trunk@10236 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 01:10:21 +00:00
kmcclusk%netscape.com
7c54e19b31 Fix for IRIX in nsRadioButton.cpp added const to nsRadioButton::SetState.
Removed scrollbar debug printf in nsXtEventHandler.cpp.


git-svn-id: svn://10.0.0.236/trunk@10235 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:57:59 +00:00
valeski%netscape.com
edf8a94dff ? network/module/nsNetFactory.cpp
Added nsNetFactory implementation. This allows users to retrieve nsINetService pointers from the service factory manager.

M dom/src/base/nsGlobalWindow.cpp
M gfx/src/nsImageNetContextSync.cpp
M layout/html/document/src/nsHTMLDocument.cpp
M network/module/nsURL.cpp
Replaced NS_NewINetService() calls with nsServiceManager::GetService() calls.

M network/module/Makefile
M network/module/makefile.win
Added nsNetFactory.cpp to the builds.

M network/module/nsINetService.h
Added a #define for the class id of the nsNetService.

M network/module/nsIStreamListener.h
Removed the NS_DEFINE_IID of kIStreamListenerIID from the header file. Each module that wants this will need to delcare it themselves.

M network/module/nsNetFile.cpp
Fixed memory leak.

M network/module/nsNetService.cpp
Globalized the gNetlibService variable so the NetFactory can access it.

M webshell/src/nsDocLoader.cpp
M webshell/src/nsPluginViewer.cpp
NS_DEFINE_IID of kIStreamListenerIID

M webshell/tests/viewer/nsSetupRegistry.cpp
Added the netlib library to the list of libraries in the registry and register the nsNetFactory with the appropriate iid and clsids.


git-svn-id: svn://10.0.0.236/trunk@10234 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:55:35 +00:00
kmcclusk%netscape.com
b8062b30c0 Fixed scrollbar scrolling event dispatch.
Wasn't scrolling because OnScroll was not declared virtual in nsWindow.h.


git-svn-id: svn://10.0.0.236/trunk@10233 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:49:03 +00:00
kmcclusk%netscape.com
3e5ef8c6ca Removed so releaseref's from nsWindow::OnDestroy
git-svn-id: svn://10.0.0.236/trunk@10232 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:30:08 +00:00
terry%netscape.com
632858d72b Bug fix by Brian Jones <cbj@nortel.net> -- was failing to create new users.
git-svn-id: svn://10.0.0.236/trunk@10231 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:21:07 +00:00
peterl%netscape.com
ef14f3a242 connected xheight, fixed font realtive sizes,
fixed text-decoration


git-svn-id: svn://10.0.0.236/trunk@10230 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:19:47 +00:00
peterl%netscape.com
a1eec07558 fixed bugs dealing with string color values
git-svn-id: svn://10.0.0.236/trunk@10229 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:18:57 +00:00
peterl%netscape.com
91ec47226f added decoration rendering code to deal with CSSisms
git-svn-id: svn://10.0.0.236/trunk@10228 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:18:25 +00:00
peterl%netscape.com
f78b4d45b2 added decoration metrics api
git-svn-id: svn://10.0.0.236/trunk@10227 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:17:43 +00:00
peterl%netscape.com
7592a1906a connected outline metrics
git-svn-id: svn://10.0.0.236/trunk@10226 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:17:23 +00:00
peterl%netscape.com
6c08578bd3 changed overline code to use font metrics
git-svn-id: svn://10.0.0.236/trunk@10225 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:15:56 +00:00
peterl%netscape.com
c6e9f05f58 change scaling to be based on y pixel size
git-svn-id: svn://10.0.0.236/trunk@10224 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:15:22 +00:00
peterl%netscape.com
bcde5a0626 added api for decoration metrics
git-svn-id: svn://10.0.0.236/trunk@10223 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:14:45 +00:00
peterl%netscape.com
6cc6f7d1ad added decoration_none
git-svn-id: svn://10.0.0.236/trunk@10222 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:13:15 +00:00
pierre%netscape.com
d001449914 add refcount in GetFontMetrics + fix TextSize
git-svn-id: svn://10.0.0.236/trunk@10221 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:07:31 +00:00
troy%netscape.com
a880832886 Changed ContentAppended() to not walk up the frame hierarchy looking
for a frame that maps the parent content object that changed


git-svn-id: svn://10.0.0.236/trunk@10220 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 00:06:46 +00:00
sdagley%netscape.com
c2b43ff523 Restored radio group for cookie settings radio buttons
git-svn-id: svn://10.0.0.236/trunk@10219 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 23:57:22 +00:00
kmcclusk%netscape.com
a857bd291e Moved libraptorhtmltable down below libraptorhtmlstyle to try and resolve
a link error.


git-svn-id: svn://10.0.0.236/trunk@10218 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 23:38:59 +00:00
slamm%netscape.com
9195e9e667 Back out button simplification until security stuff is worked out.
git-svn-id: svn://10.0.0.236/trunk@10217 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 23:29:09 +00:00
troy%netscape.com
a0f03120c9 Fixed a problem with tables with COLGROUP and COL elements crashing
because there was a null cellmap


git-svn-id: svn://10.0.0.236/trunk@10216 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 23:24:39 +00:00
joki%netscape.com
8f46a864ae Add null check before queryinterface call
git-svn-id: svn://10.0.0.236/trunk@10215 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 23:16:37 +00:00
kmcclusk%netscape.com
5467b9e959 Added nsInlineLayout to unix Makefile
git-svn-id: svn://10.0.0.236/trunk@10214 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 23:09:42 +00:00
pierre%netscape.com
7c6a2c1807 fix build breakage
git-svn-id: svn://10.0.0.236/trunk@10213 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 22:55:05 +00:00
pierre%netscape.com
c7a76453a7 fix FontMetrics (getting better but still temporary code)
git-svn-id: svn://10.0.0.236/trunk@10212 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 22:49:36 +00:00
pierre%netscape.com
ca40730cd5 re-enable OnPaint() (it crashed because of missing refcounts in nsWindow)
git-svn-id: svn://10.0.0.236/trunk@10211 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 22:48:25 +00:00
pierre%netscape.com
bfacca5f3e fix SetFont (still temporary code)
git-svn-id: svn://10.0.0.236/trunk@10210 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 22:46:36 +00:00
pierre%netscape.com
720b1e9105 add refcount in GetDeviceContext and GetAppShell
git-svn-id: svn://10.0.0.236/trunk@10209 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 22:45:24 +00:00
slamm%netscape.com
9d3a83abde Make sure callbacks are visible to derived classes.
git-svn-id: svn://10.0.0.236/trunk@10207 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 22:28:12 +00:00
jband%netscape.com
877577c907 (not part of client build) moving to mozilla from jsdse_branch of ns/js/jsd/corba. This code constitutes the server side of the Corba/iiop based remote JavaScript debugging system. There is not currently a build system for the C++ code in place
git-svn-id: svn://10.0.0.236/trunk@10206 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 22:24:00 +00:00
kmcclusk%netscape.com
7585eafb04 Added nsLineLayout.cpp to Makefile
git-svn-id: svn://10.0.0.236/trunk@10205 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:56:43 +00:00
kmcclusk%netscape.com
0a8de7e776 Added nsInlineFrame.cpp to Makefile for unix
git-svn-id: svn://10.0.0.236/trunk@10204 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:51:08 +00:00
slamm%netscape.com
bbf3f0cec1 Add 'ifdef MOZ_MAIL_NEWS' around the mail & news icons.
git-svn-id: svn://10.0.0.236/trunk@10203 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:50:00 +00:00
kmcclusk%netscape.com
6c3f0127af Added nsBlockFrame.cpp to Makefile for unix
git-svn-id: svn://10.0.0.236/trunk@10202 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:47:22 +00:00
slamm%netscape.com
ccdc105a09 Move some toolbar specific code from RDFMenuToolbarBase to RDFToolbar.
git-svn-id: svn://10.0.0.236/trunk@10201 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:46:22 +00:00
slamm%netscape.com
18656de471 Remove unused extern.
git-svn-id: svn://10.0.0.236/trunk@10200 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:46:16 +00:00
slamm%netscape.com
5533746860 Use only one icon group per toolbar item. We previously allowed up to four, but no one uses it anymore and it was ugly.
git-svn-id: svn://10.0.0.236/trunk@10199 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:46:11 +00:00
slamm%netscape.com
90b6b18b95 Remove mouse-down (md) and insensitive (i) icons. These can be drawn on the fly.
git-svn-id: svn://10.0.0.236/trunk@10198 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:45:57 +00:00
slamm%netscape.com
a7129e5059 Get rid of MOZ_LITE hack.
git-svn-id: svn://10.0.0.236/trunk@10197 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:44:40 +00:00
slamm%netscape.com
4733fd7870 Add 'ifdef MOZ_MAIL_NEWS' around the mail & news icons.icons.c
git-svn-id: svn://10.0.0.236/trunk@10196 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:44:37 +00:00
pinkerton%netscape.com
b879804470 add some asserts and sanity checks on the shelves.
git-svn-id: svn://10.0.0.236/trunk@10195 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:18:36 +00:00
pinkerton%netscape.com
e2354d7665 fix pane id of the adSpace in the "no grow box" version of the browser window.
git-svn-id: svn://10.0.0.236/trunk@10194 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:17:58 +00:00
kmcclusk%netscape.com
dc7d7e8bb8 Added nsWidgetSupport to Makefile. Removed NS_RELASE in widget factory which
would get called after each widget was instantiated.


git-svn-id: svn://10.0.0.236/trunk@10193 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:10:51 +00:00
kmcclusk%netscape.com
48a1e6651f Added nsWidgetSupport.h to exports
git-svn-id: svn://10.0.0.236/trunk@10192 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 21:10:02 +00:00
amusil%netscape.com
b7ae7d273c Ported Java to C++ src files
git-svn-id: svn://10.0.0.236/trunk@10191 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 20:47:46 +00:00
amusil%netscape.com
04d572db49 Ported Java to C++ header files
git-svn-id: svn://10.0.0.236/trunk@10190 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 20:47:01 +00:00
kmcclusk%netscape.com
9ceaa121f9 Added ConvertToDeviceCoordinates method to nsWindow.h
git-svn-id: svn://10.0.0.236/trunk@10189 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 20:34:32 +00:00
troy%netscape.com
a80395bfae Clean up work
git-svn-id: svn://10.0.0.236/trunk@10188 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 20:27:30 +00:00
kmcclusk%netscape.com
b5674d4ead Remove PreCreate method from nsComboBox.h added QueryInterface method to
nsTextWidget.cpp


git-svn-id: svn://10.0.0.236/trunk@10187 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 20:27:23 +00:00
kmcclusk%netscape.com
2562ac522c Added missing addref and releaseref's
git-svn-id: svn://10.0.0.236/trunk@10186 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 20:19:39 +00:00
morse%netscape.com
65c8c4221c second attempt to change Bool to PRBool
git-svn-id: svn://10.0.0.236/trunk@10185 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 20:18:05 +00:00
rods%netscape.com
4c2353f325 Fixes for linking
git-svn-id: svn://10.0.0.236/trunk@10184 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 20:17:17 +00:00
robinf%netscape.com
bc8b34ee53 fixing bug #321762: adding a help screen that describes how to remove a screen from AS.
git-svn-id: svn://10.0.0.236/trunk@10183 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 20:11:57 +00:00
rods%netscape.com
eaede0c25c Changed to new interfaces
git-svn-id: svn://10.0.0.236/trunk@10182 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 19:54:06 +00:00
waterson%netscape.com
4cc8bcc30b Added wrappers for 64-bit arithmetic and PRTime.
git-svn-id: svn://10.0.0.236/trunk@10179 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 19:53:12 +00:00
kmcclusk%netscape.com
a8113ea35f Changed TextField and TextArea to use new inteface definition.
git-svn-id: svn://10.0.0.236/trunk@10178 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 19:48:02 +00:00
spider%netscape.com
f6f9317f35 Updates to latest widget interface changes
git-svn-id: svn://10.0.0.236/trunk@10177 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 19:45:57 +00:00
morse%netscape.com
c42025ef8e back out change to fix build bustage
git-svn-id: svn://10.0.0.236/trunk@10176 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 19:11:51 +00:00
sman%netscape.com
0dcece846a More updates for customer council
git-svn-id: svn://10.0.0.236/trunk@10175 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 19:07:15 +00:00
jband%netscape.com
1c8e695487 (not part of client build) added single makefile controlled switchpoint using awk generated Java source file for ASSERT and DEBUG in ifcui
git-svn-id: svn://10.0.0.236/trunk@10174 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 19:04:53 +00:00
cyeh%netscape.com
81e63bacbf use MMDD instead of julian day
git-svn-id: svn://10.0.0.236/trunk@10173 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 19:00:25 +00:00
pinkerton%netscape.com
3ef224a9c3 Forgot to set fe_data in the text attr struct when dealing with fonts.
git-svn-id: svn://10.0.0.236/trunk@10172 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 18:44:58 +00:00
raman%netscape.com
fc377d03a9 Added AskPermission and SetPermission API calls for OJI. Added the CertChain Principal support for JavaSoft.
git-svn-id: svn://10.0.0.236/trunk@10171 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 18:39:48 +00:00
pinkerton%netscape.com
7ef43433a0 Fixes from 4.5-land for locking up the machine while scanning large global history files and memory leak fixes.
git-svn-id: svn://10.0.0.236/trunk@10170 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 18:32:49 +00:00
kin%netscape.com
3b67ca459e First pass support for the HTMLArea embedded toolbar.
git-svn-id: svn://10.0.0.236/trunk@10169 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 18:27:17 +00:00
morse%netscape.com
9af02680e2 changed Bool and XP_Bool to PRBool
git-svn-id: svn://10.0.0.236/trunk@10168 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 18:26:39 +00:00
kin%netscape.com
548da2dd1a Default input for an HTMLArea is now assumed to be HTML. Replaced all calls
to EDT_SetDefaultText() with calls to EDT_SetDefaultHTML().


git-svn-id: svn://10.0.0.236/trunk@10167 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 18:24:12 +00:00
kin%netscape.com
68ffaede91 Fixed bogus assertion thrown when the toolbox contains only one toolbar.
Fixed crash that occurs when a toolbox contains only one toolbar, and you
try to destroy the toolbar. Reviewed and approved by ramiro.


git-svn-id: svn://10.0.0.236/trunk@10166 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 18:23:37 +00:00
kin%netscape.com
496a27d449 Fix to prevent crashing in layout(), called from Manager.c:DeleteChild(),
when the Chrome and it's children are being destroyed.


git-svn-id: svn://10.0.0.236/trunk@10165 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 18:22:56 +00:00
shaver%netscape.com
d3ba34faaa fix dom.h/dom_priv.h mixup
git-svn-id: svn://10.0.0.236/trunk@10164 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 18:11:22 +00:00
rods%netscape.com
5373f0e6e1 Changed to new interfaces
git-svn-id: svn://10.0.0.236/trunk@10163 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:59:11 +00:00
rods%netscape.com
c726ceaa90 Changed to new interfaces
git-svn-id: svn://10.0.0.236/trunk@10162 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:45:04 +00:00
rods%netscape.com
245ca0fe2e Changed to new interfaces
git-svn-id: svn://10.0.0.236/trunk@10161 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:31:02 +00:00
rods%netscape.com
4d9468d373 Changed to new interface
git-svn-id: svn://10.0.0.236/trunk@10160 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:21:19 +00:00
troy%netscape.com
8b2676b6e1 Frame construction changes for tables
git-svn-id: svn://10.0.0.236/trunk@10159 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:19:20 +00:00
kmcclusk%netscape.com
f66f963cdc Recheckin in over the last checkin from donc which was bad.
git-svn-id: svn://10.0.0.236/trunk@10158 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:18:57 +00:00
dcone%netscape.com
f2d34bbd14 added some coordinate conversion
git-svn-id: svn://10.0.0.236/trunk@10157 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:18:56 +00:00
spider%netscape.com
dc8b9e5f19 No longer aggregate nsIWidget in nsIXPFCCanvas. Use the CanvasManager
to maintain history.


git-svn-id: svn://10.0.0.236/trunk@10156 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:17:45 +00:00
rods%netscape.com
e9715906c0 Fixes for compiling
git-svn-id: svn://10.0.0.236/trunk@10155 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:13:10 +00:00
kmcclusk%netscape.com
5a21d40ab8 Converted to use new nsIComboBox interface.
git-svn-id: svn://10.0.0.236/trunk@10154 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:12:32 +00:00
rods%netscape.com
c3a01c701d Changed to new interface
git-svn-id: svn://10.0.0.236/trunk@10153 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:01:24 +00:00
rods%netscape.com
7bf0b48df2 Changed to new interfaces
git-svn-id: svn://10.0.0.236/trunk@10152 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:01:03 +00:00
kmcclusk%netscape.com
d7345f60a2 More modifications to nsWindow.cpp to match nsIWidget interface.
git-svn-id: svn://10.0.0.236/trunk@10151 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 16:44:25 +00:00
dcone%netscape.com
836d0903d2 fixed some image bugs
git-svn-id: svn://10.0.0.236/trunk@10150 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 16:28:33 +00:00
dcone%netscape.com
a0544cb5e0 Fixed a few image bugs
git-svn-id: svn://10.0.0.236/trunk@10149 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 16:28:07 +00:00
dcone%netscape.com
77bdb3d163 fixed colorspace stuff
git-svn-id: svn://10.0.0.236/trunk@10148 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 16:27:36 +00:00
dcone%netscape.com
c01e583336 fixed mac version
git-svn-id: svn://10.0.0.236/trunk@10147 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 16:24:21 +00:00
terry%netscape.com
203638c58f Get rid of .tcl files; we're a perl app now.
git-svn-id: svn://10.0.0.236/trunk@10146 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 15:08:09 +00:00
shaver%netscape.com
3b655468fd perignon now compiles, and back out brendan's xp.h change
git-svn-id: svn://10.0.0.236/trunk@10145 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 14:45:07 +00:00
terry%netscape.com
a93fb2a92b Fixed bug 827 -- silly me still had a reference to a .tcl file. Oops!
git-svn-id: svn://10.0.0.236/trunk@10144 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 14:36:38 +00:00
ramiro%netscape.com
dc64faa66e Fix for bug 293266. Make sure "Joe User's Bookmarks" item appears as first
item in the "File Bookmarks" menu.


git-svn-id: svn://10.0.0.236/trunk@10143 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 14:19:11 +00:00
gagan%netscape.com
4643c44d68 Ooops.... Forgot the #ifdef NU_CACHE around this addition.
git-svn-id: svn://10.0.0.236/trunk@10142 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 10:23:21 +00:00
gagan%netscape.com
a93f248631 Initializing NuCacheProtocol instead of the MemCacheProtocol. Only in NuCache.
git-svn-id: svn://10.0.0.236/trunk@10141 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 10:20:18 +00:00
gagan%netscape.com
345fb3eadb Added CacheObject_Destroy, IsCompleted to mark end of streams. Added isCompleted field in CacheObject. Changed all PL_strncpy to PL_strncpyz to fix the missing trailing \0 problem. Now deleting streams objects correctly from nsMemCacheObjects. Other misc. changes.
git-svn-id: svn://10.0.0.236/trunk@10140 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 10:18:40 +00:00
gagan%netscape.com
58f88ff535 Miscellaneous changes for streams based objects. Added more comments.
git-svn-id: svn://10.0.0.236/trunk@10139 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 10:13:48 +00:00
gagan%netscape.com
1efbd33f60 Added class description comments.
git-svn-id: svn://10.0.0.236/trunk@10138 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 10:12:12 +00:00
gagan%netscape.com
dbeba878ff Added default comments to header files.
git-svn-id: svn://10.0.0.236/trunk@10137 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 10:10:01 +00:00
gagan%netscape.com
f5bf4b3144 Updated tests for nsMemStream testing.
git-svn-id: svn://10.0.0.236/trunk@10136 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 10:09:34 +00:00
gagan%netscape.com
2a8f50f5c9 Added URL_s updating for content_type, content_encoding, etc. Removed CacheObject_Destroy from complete which was messing up the objects.
git-svn-id: svn://10.0.0.236/trunk@10135 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 10:08:47 +00:00
gagan%netscape.com
37346ef741 Moved the nucacheprotoimpl stuff here.
git-svn-id: svn://10.0.0.236/trunk@10134 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 10:04:07 +00:00
gagan%netscape.com
119964e429 Removed nucacheproto from its own file to mkmemcac.c.
git-svn-id: svn://10.0.0.236/trunk@10133 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 10:03:41 +00:00
mcafee%netscape.com
2d9cca2eec Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10132 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 09:37:45 +00:00
mcafee%netscape.com
3cb9c195d8 Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10131 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 09:01:25 +00:00
mcafee%netscape.com
ce59d8aee1 Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10130 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 08:25:31 +00:00
mcafee%netscape.com
5ca568de4c Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10129 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 08:13:29 +00:00
mcafee%netscape.com
f6757ceb72 Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10128 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 07:45:58 +00:00
mcafee%netscape.com
4d978924ca Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10127 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 07:32:19 +00:00
mcafee%netscape.com
3c593fd2f0 Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10126 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 07:22:06 +00:00
valeski%netscape.com
9287d6504d General memory repairs (leakage, freeing mismatched mem, umrs)
git-svn-id: svn://10.0.0.236/trunk@10125 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 07:17:34 +00:00
mcafee%netscape.com
4579eec269 Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10124 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 07:14:42 +00:00
mcafee%netscape.com
9230756830 Unhandled cases in switch statement
git-svn-id: svn://10.0.0.236/trunk@10123 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 06:57:28 +00:00
mcafee%netscape.com
d688a6f0a0 Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10122 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 06:54:49 +00:00
mcafee%netscape.com
981afce29a Fixing Linux breakage. r=valeski
git-svn-id: svn://10.0.0.236/trunk@10121 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 05:48:26 +00:00
mcafee%netscape.com
035bbf7fb2 Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10120 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 05:16:58 +00:00
mcafee%netscape.com
e0251b80be Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10119 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 04:59:00 +00:00
mcafee%netscape.com
e09369c1f8 Compiler warning on Linux
git-svn-id: svn://10.0.0.236/trunk@10118 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 04:42:09 +00:00
valeski%netscape.com
faf12721d1 Fixing build bustage. c++ comments in c file
git-svn-id: svn://10.0.0.236/trunk@10117 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 02:39:16 +00:00
pierre%netscape.com
50d0c06aec fixed raptor build: added nsLoadAttribs.cpp to the 'modular' targets
git-svn-id: svn://10.0.0.236/trunk@10116 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 02:09:08 +00:00
jband%netscape.com
948f6f521c (not part of client build) initial checkin of mozilla/js/jsdj (migrated from ns/js/jsdj)
git-svn-id: svn://10.0.0.236/trunk@10115 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 02:07:50 +00:00
spider%netscape.com
d2925651e3 Fix for clicking on links
git-svn-id: svn://10.0.0.236/trunk@10114 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 01:54:50 +00:00
pierre%netscape.com
e4f07b9064 XP_FileOpen() now supports aliases
git-svn-id: svn://10.0.0.236/trunk@10113 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 01:26:09 +00:00
pierre%netscape.com
c77e51c99a make alias of ua.css
git-svn-id: svn://10.0.0.236/trunk@10112 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 01:24:52 +00:00
spider%netscape.com
1f6655d43a minor changes...
git-svn-id: svn://10.0.0.236/trunk@10111 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 01:21:14 +00:00
spider%netscape.com
bb4142abf3 Demo UI stuff and support for application/ui in DTD and parser
git-svn-id: svn://10.0.0.236/trunk@10110 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 01:14:48 +00:00
sman%netscape.com
ec7ed76d4d New Images!
git-svn-id: svn://10.0.0.236/trunk@10109 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 01:10:02 +00:00
robinf%netscape.com
2d9c07e281 updating these files for Nova; text changes to fix links, remove Mac and Win16 references
git-svn-id: svn://10.0.0.236/trunk@10108 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 01:04:31 +00:00
jband%netscape.com
beb5a39f8e (not EVEN part of mozilla) fix conditional compile code to allow use of debugger without liveconnect
git-svn-id: svn://10.0.0.236/trunk@10107 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:56:47 +00:00
kmcclusk%netscape.com
aa7254cf82 Added nsObject.cpp and nsObject.h files, More mods to nsWindow to match
the nsIWidget interface


git-svn-id: svn://10.0.0.236/trunk@10106 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:53:19 +00:00
buster%netscape.com
436c4b73a5 better handling of non-cell frames in rowFrames
support for the case where a nested table is in a cell that has colspan>1


git-svn-id: svn://10.0.0.236/trunk@10105 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:48:14 +00:00
valeski%netscape.com
893604c431 M webshell/public/nsIDocumentLoader.h
nsIDocumentLoader interface method change to LoadURL() we now accept a local ip address.


M webshell/public/nsIWebShell.h
1. Extended the nsIWebShell LoadURL() method to take an additional PRUint32 parameter which represents an ip address. If specified, this address will be bound to the socket prior to connection as the local/client ip address to be used. The caller is guarantees the validity of this address.
2. Extended the nsReloadType enumeration to allow both proxy and cache bypass.


M webshell/src/nsDocLoader.cpp
1. Extended nsDocumentBindInfo::Bind() to take an additional nsILoadAttribs pointer. (class definitaion change and implementation).

2. Extended nsDocLoaderImpl::LoadURL() to take an additional PRUint32 param which represents an optional local ip address to bind the connecting socket to, prior to connection. (class definitaion change and implementation) The docloader object maintains a pointer to an nsILoadAttribs interface.


M webshell/src/nsWebShell.cpp
Implemented new LoadURL() routine. Simple pass down to doc loader of PRUint32.


M webshell/tests/ComFactory/makefile.win
Added netlib to the list of prerequisites.


git-svn-id: svn://10.0.0.236/trunk@10104 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:40:20 +00:00
cyeh%netscape.com
04aa3caab1 *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@10103 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:37:28 +00:00
valeski%netscape.com
8304001d60 ? network/module/nsILoadAttribs.h
New nsIloadAttribs interface that defines the load attributes that are will be associated with a url.

? network/module/nsLoadAttribs.cpp
New nsIloadAttribs interface implementation.

M network/main/mkconect.c
Check for a new local ip address to use. If found PR_Bind() is called to bind the connecting socket to the new address.

M network/main/mkgeturl.c
Added logic to determine whether or not skip the proxy for the given url.
M network/main/mktcp.h
api change. Changed NET_BeginConnect() and NET_FinishConnect() function prototypes.

M network/module/MANIFEST
Added nsILoadAttribs.h to exports list

M network/module/Makefile
Added nsILoadAttribs.h to exports list and nsILoadAttribs.cpp to compile lists.

M network/module/makefile.win
Added nsILoadAttribs.h to exports list and nsILoadAttribs.cpp to compile lists.

M network/module/nsIURL.h
Added accessor methods to the url interface for nsILoadAttribs interface pointer.

M network/module/nsNetService.h
Added urlSetup method to class definition.

M network/module/nsNetService.cpp
Condensed url setup (from nsIURL properties to the actual url struct) into a helper routine. URL struct setup now transfers nsILoadAttributes over into the url struct.

M network/module/nsURL.cpp
Added nsILoadAttribs accessor method implementations to the url implementation.

M network/protocol/ftp/mkftp.c
api change. NET_*Connect().

M network/protocol/gopher/mkgopher.c
api change. NET_*Connect().

M network/protocol/http/mkhttp.c
api change. NET_*Connect().

M network/protocol/imap4/mkimap4.cpp
api change. NET_*Connect().

M network/protocol/nntp/mknews.c
api change. NET_*Connect().

M network/protocol/pop3/mkpop3.c
api change. NET_*Connect().

M network/protocol/smtp/mksmtp.c
api change. NET_*Connect().


git-svn-id: svn://10.0.0.236/trunk@10102 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:35:32 +00:00
valeski%netscape.com
5473c9c1b2 M include/net.h
Adding two new url_struct attributes. uint32 localIP (can be set to specify a local ip address to bing the connecting socket to), boolean bypassProxy (can be set to skip over any proxies that would've been used.


git-svn-id: svn://10.0.0.236/trunk@10101 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:25:53 +00:00
kmcclusk%netscape.com
bd037db210 Massive modifications to use the new nsIWidget interface.
git-svn-id: svn://10.0.0.236/trunk@10100 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:21:00 +00:00
pierre%netscape.com
eef1a274fc fix mac build: removed several files, added one
git-svn-id: svn://10.0.0.236/trunk@10099 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:13:41 +00:00
gagan%netscape.com
75906a59fc Fix for bug # 323918.
git-svn-id: svn://10.0.0.236/trunk@10098 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:01:02 +00:00
robinf%netscape.com
f5924ec122 fixing bug #322037 in aatab.htm; removed win16 note from nmtab.htm
git-svn-id: svn://10.0.0.236/trunk@10097 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 23:54:30 +00:00
pierre%netscape.com
52a78fbd8b fixing mac build (the class name was repeated in the method declaration)
git-svn-id: svn://10.0.0.236/trunk@10096 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 23:39:28 +00:00
slamm%netscape.com
31d14a596b Fix build bustage. xp_ncent.c includes htrdf.h which include pa_parse.h. Adding 'parse' to the REQUIRES line.
git-svn-id: svn://10.0.0.236/trunk@10095 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 23:39:20 +00:00
mcafee%netscape.com
6ef6ddecb3 Sample build date. Build process overwrites this file with a current value. 98=year, 258=julian date, 16=4pm PST. a=donm
git-svn-id: svn://10.0.0.236/trunk@10094 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 22:51:11 +00:00
rjc%netscape.com
b663d9987b When sending VPROP_CHANGED events, also pass along information on which property changed.
git-svn-id: svn://10.0.0.236/trunk@10093 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 22:15:46 +00:00
rjc%netscape.com
ad34d6eb08 Need to reference libparse header file.
git-svn-id: svn://10.0.0.236/trunk@10092 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 22:14:59 +00:00
terry%netscape.com
9d2a2b65f3 Whoops; a bad username was causing perl warning messages.
git-svn-id: svn://10.0.0.236/trunk@10091 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 22:12:52 +00:00
spider%netscape.com
c21d038d36 Add support for aggregation in QueryInterface
git-svn-id: svn://10.0.0.236/trunk@10090 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 22:09:57 +00:00
rjc%netscape.com
a9f87890d8 Additional changes for supporting HT_LayoutComplete().
git-svn-id: svn://10.0.0.236/trunk@10089 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 22:07:34 +00:00
spider%netscape.com
14e48ad656 Final implementation and hookup of user, layer and calcanvas
interfaces


git-svn-id: svn://10.0.0.236/trunk@10088 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 22:05:48 +00:00
dcone%netscape.com
41d9ea989b Added image test support, needed netlib in the link
git-svn-id: svn://10.0.0.236/trunk@10087 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:58:25 +00:00
kostello%netscape.com
860f5caafc *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@10086 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:56:35 +00:00
kostello%netscape.com
6132966f1a Added nsFileWidget.cpp
git-svn-id: svn://10.0.0.236/trunk@10085 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:56:07 +00:00
kostello%netscape.com
16a9f6d08b Fix CreateInstance
git-svn-id: svn://10.0.0.236/trunk@10084 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:55:50 +00:00
terry%netscape.com
eeb3fe6af9 Add a few more clues.
git-svn-id: svn://10.0.0.236/trunk@10083 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:55:46 +00:00
kostello%netscape.com
6bdea53350 Fix QueryInterface
git-svn-id: svn://10.0.0.236/trunk@10082 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:55:22 +00:00
kostello%netscape.com
8174b8a00a Update to synch with pc version
git-svn-id: svn://10.0.0.236/trunk@10081 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:54:29 +00:00
terry%netscape.com
763d43f255 Everything has been ported to now run under Perl.
git-svn-id: svn://10.0.0.236/trunk@10080 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:49:26 +00:00
cyeh%netscape.com
7cbc1b44d2 added missing about.html build numbering
git-svn-id: svn://10.0.0.236/trunk@10079 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:34:52 +00:00
briano%netscape.com
f271c3be83 Fix for cyeh's BUILD_OFFICIAL or MOZILLA_OFFICIAL dilemma.
git-svn-id: svn://10.0.0.236/trunk@10078 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:32:15 +00:00
joki%netscape.com
cc5aacfa27 More support for capturing, minor adjustments to window.open behavior.
git-svn-id: svn://10.0.0.236/trunk@10077 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:31:58 +00:00
mcafee%netscape.com
f974dd8c58 Adding license file. Decoupling version number from build number, version number will have to use another mechanism. a=sar, r=sar,donm
git-svn-id: svn://10.0.0.236/trunk@10076 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:16:39 +00:00
jsun%netscape.com
06ca545ef4 changed clobber_julian depend_julian targets so they now go to
mozilla\modules\calendar rather than ns\julian


git-svn-id: svn://10.0.0.236/trunk@10075 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 21:15:08 +00:00
spider%netscape.com
10e6bcc931 New files for user and core cal canvas implementations
git-svn-id: svn://10.0.0.236/trunk@10074 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:48:22 +00:00
spider%netscape.com
fe1de1631a WIP: CalUSer. Fix for rendering transparent images
git-svn-id: svn://10.0.0.236/trunk@10073 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:45:35 +00:00
buster%netscape.com
26f6ed9085 nsTableRowGroupFrame no longer assumes all its children are rows, or that all row children are cells.
git-svn-id: svn://10.0.0.236/trunk@10072 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:36:42 +00:00
michaelp%netscape.com
a62294de07 cleaned up some link jumping nonsense.
git-svn-id: svn://10.0.0.236/trunk@10071 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:22:37 +00:00
michaelp%netscape.com
532b0e2b0c jumping through links now works in full screen plugins.
git-svn-id: svn://10.0.0.236/trunk@10070 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:21:10 +00:00
ebina%netscape.com
ef7eb77867 Add the source and Makefile for the new mod_gzip_content module.
git-svn-id: svn://10.0.0.236/trunk@10069 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:17:13 +00:00
sman%netscape.com
d41ec0e2a0 better images, with transparent background
git-svn-id: svn://10.0.0.236/trunk@10068 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:16:44 +00:00
ebina%netscape.com
7f5217ff50 An example Apache 1.3 configuration file to show how to configure the
new mod_gzip_content module.


git-svn-id: svn://10.0.0.236/trunk@10067 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:16:19 +00:00
blizzard%appliedtheory.com
258852664b UpdatePixmap completed
git-svn-id: svn://10.0.0.236/trunk@10066 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:14:33 +00:00
spider%netscape.com
ac6725e002 Adding core CalCanvas implementation
git-svn-id: svn://10.0.0.236/trunk@10065 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:08:35 +00:00
cyeh%netscape.com
0f0198865f added mozilla/xpfc for scallan
git-svn-id: svn://10.0.0.236/trunk@10064 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:02:52 +00:00
ccooper%netscape.com
6185ea9c37 Added NPL to LiveConnect java classes.
New file 'JSWrappedException' is used for passing exceptions between Java
and JavaScript.


git-svn-id: svn://10.0.0.236/trunk@10063 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 19:53:48 +00:00
thom%netscape.com
3c2d58ed0a First Checked In.
git-svn-id: svn://10.0.0.236/trunk@10062 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 19:51:15 +00:00
spider%netscape.com
bafbc69717 Implement Layer Collection management of child layers
git-svn-id: svn://10.0.0.236/trunk@10061 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 19:50:58 +00:00
rjc%netscape.com
06e0f20ba6 Fix build bustage. Need to include "structs.h" for new layout completion support.
git-svn-id: svn://10.0.0.236/trunk@10060 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 19:35:38 +00:00
despotdaemon%netscape.com
50b4d75ff1 Pseudo-automatic update of changes made by mjudge@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10059 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 19:16:46 +00:00
spider%netscape.com
385f043bcb WIP: Initial Layer interface
git-svn-id: svn://10.0.0.236/trunk@10058 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 19:09:36 +00:00
blizzard%appliedtheory.com
66af3da999 gnomefe now creates pixmaps when asked to by the image layer
git-svn-id: svn://10.0.0.236/trunk@10057 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 19:04:32 +00:00
blizzard%appliedtheory.com
bf8fc9bf2b Remove README file. Information should be on the web site and/or elsewhere
in the tree.


git-svn-id: svn://10.0.0.236/trunk@10056 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 18:54:53 +00:00
nisheeth%netscape.com
3563fa3d18 Build list of meta tags on top_state and pass them to RDF HT once layout
completes.  Delete the meta tag list once RDF HT is done looking at it.
This enables functionality like automatically sucking in META info into the
RDF hierarchy when you add a bookmark.


git-svn-id: svn://10.0.0.236/trunk@10055 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 18:37:49 +00:00
nisheeth%netscape.com
6096872983 Changed HT_LayoutComplete() to accept different parameters.
git-svn-id: svn://10.0.0.236/trunk@10054 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 18:36:03 +00:00
nisheeth%netscape.com
fc6080da78 Changed parameters of HT_LayoutComplete().
git-svn-id: svn://10.0.0.236/trunk@10053 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 18:35:16 +00:00
robinf%netscape.com
39f64e949e Fixing bug #309332; reword text on this screen so it's clearer about the type of information the user will be asked for
git-svn-id: svn://10.0.0.236/trunk@10052 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 18:34:51 +00:00
nisheeth%netscape.com
ff8d76d433 Added TagList struct for passing meta tags to RDF HT from layout.
git-svn-id: svn://10.0.0.236/trunk@10051 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 18:32:50 +00:00
despotdaemon%netscape.com
38981d3af7 Pseudo-automatic update of changes made by terry@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@10050 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 18:24:13 +00:00
buster%netscape.com
446ae68865 added table content interfaces
git-svn-id: svn://10.0.0.236/trunk@10049 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 18:07:54 +00:00
buster%netscape.com
60f12ef2ba added command line switches for setting window width and height
git-svn-id: svn://10.0.0.236/trunk@10048 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 18:06:19 +00:00
buster%netscape.com
1c8d847337 nsStyleConsts.h added some HTML 4 consts for tables
nsHTMLAtoms.cpp,h             added some HTML 4 strings for tables
nsHTMLParts.h                 added constructors for new table content classes
nsGenericHTMLElement.cpp,h    added table frame creation, common table attribute parsing
nsHTMLTable*Element.cpp       these are the new table content classes
nsHTMLContentSink.cpp         enabled the new content and removed the old
nsHTMLStyleSheet.cpp          fixed the table style optimizations to work with new content
nsTable*Frame.cpp             these work with the new content


git-svn-id: svn://10.0.0.236/trunk@10047 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 17:58:24 +00:00
spider%netscape.com
49ff8f66c4 WIP: XP USer class
git-svn-id: svn://10.0.0.236/trunk@10046 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 17:29:04 +00:00
blizzard%appliedtheory.com
55be84b8dd Add patches from Bert Driehuis <driehuis@playbeing.org> These patches
make sure that the view is properly returned in all functions where it's
supposed to be.


git-svn-id: svn://10.0.0.236/trunk@10045 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 14:31:47 +00:00
ramiro%netscape.com
2451e78bb4 Comment out 2 assertions to get past toolbar layout problem.
git-svn-id: svn://10.0.0.236/trunk@10044 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 11:26:43 +00:00
ramiro%netscape.com
4f1f18498b Make sure motif link path appears before x link path.
git-svn-id: svn://10.0.0.236/trunk@10043 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 08:26:44 +00:00
warren%netscape.com
ef5fc736c3 API changes for GetValue/SetValue and GetURL/PostURL from michaelp.
git-svn-id: svn://10.0.0.236/trunk@10042 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 04:54:46 +00:00
michaelp%netscape.com
80189a3a87 new file for mac build.
git-svn-id: svn://10.0.0.236/trunk@10041 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 04:15:53 +00:00
spider%netscape.com
9e43daf824 Change to pull and build FS cal
git-svn-id: svn://10.0.0.236/trunk@10040 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 04:03:29 +00:00
spider%netscape.com
a1c09d0a73 Build off of FS calendar
git-svn-id: svn://10.0.0.236/trunk@10039 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 04:02:56 +00:00
warren%netscape.com
250e947a34 Fixed nsMalloc::Create for the non-aggregated case.
git-svn-id: svn://10.0.0.236/trunk@10038 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:59:21 +00:00
ramiro%netscape.com
a7a093b79f Add dynamic toolbar layout.
git-svn-id: svn://10.0.0.236/trunk@10037 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:56:55 +00:00
michaelp%netscape.com
adef5c738a new plugin world.
git-svn-id: svn://10.0.0.236/trunk@10036 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:48:58 +00:00
michaelp%netscape.com
3b967286ad changes for new plugin world.
git-svn-id: svn://10.0.0.236/trunk@10035 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:46:52 +00:00
michaelp%netscape.com
6adb1c959c fixes for new plugin world.
git-svn-id: svn://10.0.0.236/trunk@10034 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:46:05 +00:00
warren%netscape.com
2bb9a8a545 Accepting michaelp's API changes for GetValue/SetValue.
git-svn-id: svn://10.0.0.236/trunk@10033 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:45:38 +00:00
michaelp%netscape.com
68b263feca fix so that if our windows get subclassed and we never hear any
WM_DESTROY messages, we still cleanup properly.


git-svn-id: svn://10.0.0.236/trunk@10032 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:45:06 +00:00
ramiro%netscape.com
3c169b7d04 Add #include "prefapi.h".
git-svn-id: svn://10.0.0.236/trunk@10031 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:41:15 +00:00
ramiro%netscape.com
27a216e69c Add shell placement.
git-svn-id: svn://10.0.0.236/trunk@10030 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:33:06 +00:00
spider%netscape.com
e97fd467cd Getting FS Calendar Core to compile...
git-svn-id: svn://10.0.0.236/trunk@10029 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:21:18 +00:00
spider%netscape.com
faefa14a3b Add MOZ_TREX to CFLAGS
git-svn-id: svn://10.0.0.236/trunk@10028 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 03:20:14 +00:00
racham%netscape.com
16f90c3fe0 BUG 323175 : Use global registry variable (currentProfileDirectory)
git-svn-id: svn://10.0.0.236/trunk@10027 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 02:55:58 +00:00
racham%netscape.com
419db3f0eb BUG 323175 : Use global registry variable (urrentProfileDirectory)
git-svn-id: svn://10.0.0.236/trunk@10026 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 02:54:59 +00:00
racham%netscape.com
cb7774c7db BUG 323175 : Catch the registry value into a global variable (currentProfileDirectory)
git-svn-id: svn://10.0.0.236/trunk@10025 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 02:53:59 +00:00
racham%netscape.com
26458fe839 BUG 323175 : Sync up with Netscape Registry and Profile Manager changes
git-svn-id: svn://10.0.0.236/trunk@10024 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 02:52:02 +00:00
spider%netscape.com
795f769d5e Whomping latest Nova Calendar Core implementation into FS
NOTE:  Mozilla & Gromit should not be building this stuff.


git-svn-id: svn://10.0.0.236/trunk@10023 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 02:20:22 +00:00
ramiro%netscape.com
53e0d6f4ad Fix the create view label order.
git-svn-id: svn://10.0.0.236/trunk@10022 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 02:07:09 +00:00
kostello%netscape.com
a5a3cc3c2c Update to synch with new Widget interfaces
git-svn-id: svn://10.0.0.236/trunk@10021 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 01:40:16 +00:00
kostello%netscape.com
4ae2383f99 Add nsWidgetSupport MANIFEST
git-svn-id: svn://10.0.0.236/trunk@10020 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 01:39:26 +00:00
kostello%netscape.com
074e2ccc6f Added nsWidgetSupport.cpp
git-svn-id: svn://10.0.0.236/trunk@10019 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 01:38:53 +00:00
kostello%netscape.com
bc20d943c1 Synch with new Widget interfaces
git-svn-id: svn://10.0.0.236/trunk@10018 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 01:36:26 +00:00
kostello%netscape.com
6647fe02ad Synch with new widget interfaces
git-svn-id: svn://10.0.0.236/trunk@10017 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 01:35:27 +00:00
kipp%netscape.com
282257332e nuked
git-svn-id: svn://10.0.0.236/trunk@10016 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 00:21:25 +00:00
kipp%netscape.com
6a52b74171 Removed css/layout directory
git-svn-id: svn://10.0.0.236/trunk@10015 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 00:19:49 +00:00
kipp%netscape.com
4a9593e1f6 Fixed log module name
git-svn-id: svn://10.0.0.236/trunk@10014 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 00:18:10 +00:00
kipp%netscape.com
8d8e8d1a47 Use traceable ctor design pattern
git-svn-id: svn://10.0.0.236/trunk@10013 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 00:17:53 +00:00
kipp%netscape.com
8c8bbed687 Fixed some memory leaks
git-svn-id: svn://10.0.0.236/trunk@10012 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 00:17:13 +00:00
kipp%netscape.com
916f525269 Use nsBrowserWindow::CloseAllWindows to shutdown cleanly; added a missing NS_RELEASE and removed an improper NS_ADDREF
git-svn-id: svn://10.0.0.236/trunk@10011 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 00:16:50 +00:00
kipp%netscape.com
05141d34c2 Changed reference counting rules so that the global array holds a reference; added CloseAllWindows so that clean app shutdown is possible
git-svn-id: svn://10.0.0.236/trunk@10010 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 00:16:12 +00:00
kipp%netscape.com
54d328117f Removed Destroy and added CloseAllWindows
git-svn-id: svn://10.0.0.236/trunk@10009 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 00:14:31 +00:00
kipp%netscape.com
9095fa6e03 Cleaned up ConvertStatus code
git-svn-id: svn://10.0.0.236/trunk@10008 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 00:14:11 +00:00
kipp%netscape.com
68c7e3cf27 Only execute SymLoadModule when tracing is enabled
git-svn-id: svn://10.0.0.236/trunk@10007 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 00:13:35 +00:00
pinkerton%netscape.com
bed315ee6c don't return "boolean" in GetScrollbarMode() when the return value is a tri-state layout constant. return Int8 which is how it's stored.
git-svn-id: svn://10.0.0.236/trunk@10006 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 23:32:42 +00:00
vidur%netscape.com
854414df4f Got rid of Construct method from nsIJSScriptObject interface. Added first-pass implementation of reflow case to nsGenericHTMLElement::SetAttr.
git-svn-id: svn://10.0.0.236/trunk@10004 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 23:02:32 +00:00
vidur%netscape.com
82f15807dd Got rid of Construct method from nsIJSScriptObject interface.
git-svn-id: svn://10.0.0.236/trunk@10003 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 23:01:48 +00:00
slamm%netscape.com
250269edd6 Fix the lines removed count in the +/- column
git-svn-id: svn://10.0.0.236/trunk@10002 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 22:58:53 +00:00
sman%netscape.com
d2d2c6ff59 Updated to use the new error codes
git-svn-id: svn://10.0.0.236/trunk@10001 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 22:40:42 +00:00
pinkerton%netscape.com
04a5b3b832 Fix bug where we would randomly crash in the RDF notification handler. We weren't properly disposing of the personal toolbar pane and so it would get events long after it was deleted, causing crashes.
git-svn-id: svn://10.0.0.236/trunk@10000 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 22:36:43 +00:00
rogerl%netscape.com
93e167fada Fixed bug #316293; when break was very first statement in a loop it wasn't
getting patched and so looped for ever.


git-svn-id: svn://10.0.0.236/trunk@9999 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 22:33:19 +00:00
norris%netscape.com
3f06fb0a0a Fix 179417 "crash in with tests with with object"
The problem was that when "w=With()" is executed, the new object "w" is created
such that it shares a scope with Object.prototype. When GC runs and
Object.prototype and "w" are both collected, the test in js_DropObjectMap
currently looks like

     if (MAP_IS_NATIVE(map) && ((JSScope *)map)->object == obj)
        ((JSScope *)map)->object = NULL;

The problem is that MAP_IS_NATIVE is false because the object ops are special
for the With object. Thus map->object is left nonnull and when "w" is collected,
it tries to drop its scope, which causes map->object to be referenced, causing
the null dereference.

Update MAP_IS_NATIVE to include With objects as well.


git-svn-id: svn://10.0.0.236/trunk@9998 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 22:01:01 +00:00
troy%netscape.com
4eba509d38 Added overloaded ConstructFrame() member function. Prep work for table
changes


git-svn-id: svn://10.0.0.236/trunk@9997 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 21:16:01 +00:00
kostello%netscape.com
79c3cd8a7a Changed to match new Widget interfaces.
git-svn-id: svn://10.0.0.236/trunk@9995 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 20:56:27 +00:00
kostello%netscape.com
458aaa4768 Changes implementation to match the new Widget interfaces i.e. t
he signature of many of the "getters" changed.


git-svn-id: svn://10.0.0.236/trunk@9994 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 20:54:38 +00:00
kostello%netscape.com
72ded9346c Helper functions for widget manipulation and creation
git-svn-id: svn://10.0.0.236/trunk@9993 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 20:49:28 +00:00
kostello%netscape.com
84d1794148 Changes implementation to match the new Widget interfaces. This involves
many calls to QueryInterface because many of the instance members
no longer derive from nsIWidget.
Also, using helper functions in nsWidgetHelper for standard Create calls.


git-svn-id: svn://10.0.0.236/trunk@9992 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 20:46:42 +00:00
kostello%netscape.com
84cf5785b0 Changes implementation to match the new Widget interfaces. This involves
many calls to QueryInterface. Also, using helper functions in nsWidgetHelper
for standard Create calls.


git-svn-id: svn://10.0.0.236/trunk@9991 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 20:43:58 +00:00
kostello%netscape.com
52bb52faa0 Removed Aggregation and removed multiple inheritance.
Changes implementation to match the new Widget interfaces. This involves
many calls to QueryInterface.


git-svn-id: svn://10.0.0.236/trunk@9990 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 20:40:49 +00:00
kostello%netscape.com
2bf19c7d8f Major Change: changed all Widget interfaces so that they no longer
descend from nsIWidget. This conforms better to our standard
of not having interfaces inherit from each other.

Changed many of the interfaces to be XPCOM complient i.e. all methods
return nsresult. Therefore the signature of many of the "getters"
changed.


git-svn-id: svn://10.0.0.236/trunk@9989 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 20:38:05 +00:00
mcafee%netscape.com
24c7cf4a57 Merging in XfeToggleButtonIsSet() from Nova branch
git-svn-id: svn://10.0.0.236/trunk@9988 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 20:26:48 +00:00
slamm%netscape.com
8b10125355 Quiet a compiler warning
git-svn-id: svn://10.0.0.236/trunk@9987 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:52:57 +00:00
slamm%netscape.com
4fb6e7c47b Kill some dead code
git-svn-id: svn://10.0.0.236/trunk@9986 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:52:48 +00:00
slamm%netscape.com
aefa48de5b Use the prefapi directly for the toolbar prefs.
git-svn-id: svn://10.0.0.236/trunk@9985 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:52:40 +00:00
slamm%netscape.com
29aabfaa4c Use prefapi instead of fe_GlobalPrefs. Remove some unused context fe_data items.
git-svn-id: svn://10.0.0.236/trunk@9984 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:52:34 +00:00
slamm%netscape.com
0fb575b027 Add a doClose method to do some possible cleanup. Really just moving some old code out of the xfe close to where it should be used.
git-svn-id: svn://10.0.0.236/trunk@9983 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:52:31 +00:00
slamm%netscape.com
41ba60ca7e Don't need to set top_area in fe_data anymore.
git-svn-id: svn://10.0.0.236/trunk@9982 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:52:19 +00:00
slamm%netscape.com
12f4c1a56e Remove a bunch of uneeded items from the context fe_data.
git-svn-id: svn://10.0.0.236/trunk@9981 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:52:15 +00:00
slamm%netscape.com
c7b9024d78 Quiet some compiler warning. Kill some references to fe_data in context that is obsolete.
git-svn-id: svn://10.0.0.236/trunk@9980 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:52:08 +00:00
slamm%netscape.com
32fd78b726 Remove toolbar prefs from fe_globalPrefs. Use the backend call directly instead. Discard some unused prefs.
git-svn-id: svn://10.0.0.236/trunk@9979 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:52:01 +00:00
slamm%netscape.com
3bd21ad849 Move an abort clean up from mozilla.c
git-svn-id: svn://10.0.0.236/trunk@9978 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:51:57 +00:00
slamm%netscape.com
0c4d375986 Kill reference to url_label in fe_data. Quiet a compiler warning.
git-svn-id: svn://10.0.0.236/trunk@9977 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:51:50 +00:00
slamm%netscape.com
9f26899c8c Kill some dead code. Call prefs directly instead of using fe_globalPrefs.
git-svn-id: svn://10.0.0.236/trunk@9976 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 19:51:46 +00:00
pinkerton%netscape.com
82f6d6f453 HTMLPane now respects size from HT (in pixels or percentages).
git-svn-id: svn://10.0.0.236/trunk@9975 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 18:44:19 +00:00
wtc%netscape.com
0c4b855072 For Strong Arm 110 (sa110), set the OS_ARCH to "arm".
git-svn-id: svn://10.0.0.236/trunk@9974 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 18:09:06 +00:00
sman%netscape.com
4e6631611f saved folders column in a different view
git-svn-id: svn://10.0.0.236/trunk@9973 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 18:03:20 +00:00
spider%netscape.com
0470f135c4 xp button and folder birth
git-svn-id: svn://10.0.0.236/trunk@9971 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 16:20:50 +00:00
dcone%netscape.com
85c7d18ae3 added some image tests
git-svn-id: svn://10.0.0.236/trunk@9970 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 15:46:23 +00:00
toshok%netscape.com
3b6c53da74 Fix bugzilla bug 741 (typo in laybuiltin.c -- builtin->width should be builtin_width. contributed by rkl@connect.org.uk.) Also, move the builtin's layer at the end of lo_UpdateStateAfterBuiltinLayout.
git-svn-id: svn://10.0.0.236/trunk@9969 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 08:53:43 +00:00
rpotts%netscape.com
512857d619 Fixed some reference counting problems introduced by the rev 1.20 check in...
git-svn-id: svn://10.0.0.236/trunk@9968 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 05:43:54 +00:00
troy%netscape.com
6dc2d7e4d2 Container floated elements are now wrapped in a BODY frame
git-svn-id: svn://10.0.0.236/trunk@9967 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 04:01:08 +00:00
troy%netscape.com
d9e727b8ba Moved CreatePlaceholderFrame() to nsCSSContainerFrame so it's shared by
the block and the inline code


git-svn-id: svn://10.0.0.236/trunk@9966 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-13 19:58:02 +00:00
troy%netscape.com
555da3f7a1 Restored some code that I can't remove until tables are changed to work
with the new frane construction code


git-svn-id: svn://10.0.0.236/trunk@9965 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-13 19:18:39 +00:00
raman%netscape.com
dc7639086f Bug fixes to isSecurePrincipal. We weren't checking codebase_principal preference correctly.
git-svn-id: svn://10.0.0.236/trunk@9964 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-13 18:07:59 +00:00
wtc%netscape.com
4541f18760 For DG/UX, rename its OS_ARCH fro "dgux" to "DGUX".
dgux.mk is also renamed DGUX.mk.


git-svn-id: svn://10.0.0.236/trunk@9963 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-13 04:18:06 +00:00
wtc%netscape.com
b4549fd4bb Port to Linux/Strong Arm 110. Only the pthreads version works.
Files changed: Linux.mk, _linux.cfg, _linux.h.


git-svn-id: svn://10.0.0.236/trunk@9962 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-13 03:43:33 +00:00
troy%netscape.com
2f043c9e30 Changed to explicitly create frame of type frameset or outer frame instead
of using CreateFrame() which will be going away


git-svn-id: svn://10.0.0.236/trunk@9961 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-13 02:45:07 +00:00
raman%netscape.com
4ed88cebba Added some more preferences for AutoUpdate
git-svn-id: svn://10.0.0.236/trunk@9960 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-13 02:02:51 +00:00
troy%netscape.com
b8329612af Changed Reflow() to directly create the child frames rather than use
CreateFrame() member function which is going away


git-svn-id: svn://10.0.0.236/trunk@9959 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 23:53:28 +00:00
troy%netscape.com
172fff617c Changes ProcessChildren() to return the child list and leave it to the caller
(ConstructFrame() member function) to call Init()


git-svn-id: svn://10.0.0.236/trunk@9958 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 23:51:57 +00:00
kipp%netscape.com
83c8cc1fae Work around crash bug with content delegate
git-svn-id: svn://10.0.0.236/trunk@9957 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 23:30:23 +00:00
kipp%netscape.com
6e7f4e1670 Added a build variable for enable xpcom refcnt tracing
git-svn-id: svn://10.0.0.236/trunk@9956 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:35:20 +00:00
kipp%netscape.com
10b6617c48 Fixup AddRef/Release and some constructors to use NS_ADDREF (etc) macros
git-svn-id: svn://10.0.0.236/trunk@9955 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:33:48 +00:00
kipp%netscape.com
fff296425d whitespace tweak
git-svn-id: svn://10.0.0.236/trunk@9954 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:31:10 +00:00
kipp%netscape.com
8005dd0043 Use NS_ADDREF macros to enable refcnt tracing
git-svn-id: svn://10.0.0.236/trunk@9953 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:30:49 +00:00
kipp%netscape.com
feed565fc3 Added missing release's
git-svn-id: svn://10.0.0.236/trunk@9952 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:30:09 +00:00
kipp%netscape.com
b678988c90 Use ADDREF/RELEASE macros
git-svn-id: svn://10.0.0.236/trunk@9951 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:29:39 +00:00
kipp%netscape.com
c2d8209d5c Added nsTraceRefcnt to the build and exports
git-svn-id: svn://10.0.0.236/trunk@9950 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:29:03 +00:00
kipp%netscape.com
f8b196a533 whitespace tidy up
git-svn-id: svn://10.0.0.236/trunk@9949 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:28:01 +00:00
kipp%netscape.com
6fda7b24bf Use NS_ADDREF/NS_RELEASE macros
git-svn-id: svn://10.0.0.236/trunk@9948 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:26:52 +00:00
kipp%netscape.com
987394103f Support build-time usage of the nsTraceRefcnt class for tracing refcnt manipulations. In addition, added NS_NEWXPCOM and NS_DELETEXPCOM macros to track create/destroys
git-svn-id: svn://10.0.0.236/trunk@9947 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:26:36 +00:00
kipp%netscape.com
0b3cf3ff18 Register libraries with the refcnt tracer
git-svn-id: svn://10.0.0.236/trunk@9946 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:25:28 +00:00
kipp%netscape.com
d9c70e46f0 new
git-svn-id: svn://10.0.0.236/trunk@9945 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:25:06 +00:00
kipp%netscape.com
f4f2970d0a Added tools directory to windows build
git-svn-id: svn://10.0.0.236/trunk@9944 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 19:18:04 +00:00
kipp%netscape.com
13af87effd new
git-svn-id: svn://10.0.0.236/trunk@9943 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 17:53:08 +00:00
mcafee%netscape.com
dba7583631 Fixing Solaris bustage
git-svn-id: svn://10.0.0.236/trunk@9937 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 05:55:51 +00:00
mcafee%netscape.com
2c5daf4cc9 Solaris needs EOF character
git-svn-id: svn://10.0.0.236/trunk@9936 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 05:52:39 +00:00
mcafee%netscape.com
7f26f3101e Adding privacy prefs
git-svn-id: svn://10.0.0.236/trunk@9935 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 05:36:51 +00:00
troy%netscape.com
4e069097cb Removed some XXX CONSTRUCTION commented out code
git-svn-id: svn://10.0.0.236/trunk@9934 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 04:54:04 +00:00
raman%netscape.com
5200561a75 Commenting out the call for AutoUpdate because Mac was not building
git-svn-id: svn://10.0.0.236/trunk@9933 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 04:52:17 +00:00
raman%netscape.com
757204162b Commenting out the call for AutoUpdate because Mac was not building
git-svn-id: svn://10.0.0.236/trunk@9932 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 04:50:45 +00:00
troy%netscape.com
8189d75efa Part of frame construction changes
git-svn-id: svn://10.0.0.236/trunk@9931 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 04:46:35 +00:00
despotdaemon%netscape.com
847a52c2f3 Pseudo-automatic update of changes made by danda@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9930 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 03:45:23 +00:00
despotdaemon%netscape.com
9fa0b92dd3 Pseudo-automatic update of changes made by danda@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9929 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 03:43:39 +00:00
rjc%netscape.com
6c49d37ebf Exported autoupdt.h to dist area.
git-svn-id: svn://10.0.0.236/trunk@9928 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 02:54:33 +00:00
peterl%netscape.com
d5c5ee4080 vend important rule when present
git-svn-id: svn://10.0.0.236/trunk@9927 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 02:46:59 +00:00
peterl%netscape.com
1d00b6c9c9 fixed content ref count bugs in ContentAppended
git-svn-id: svn://10.0.0.236/trunk@9926 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 02:46:09 +00:00
peterl%netscape.com
cb4c019521 added debug code for ref counting
git-svn-id: svn://10.0.0.236/trunk@9925 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 02:45:26 +00:00
peterl%netscape.com
261f51617b init ref count of important rule
git-svn-id: svn://10.0.0.236/trunk@9924 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 02:43:48 +00:00
peterl%netscape.com
67d0ec8374 properly addref attr stylesheet before returning
git-svn-id: svn://10.0.0.236/trunk@9923 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 02:43:19 +00:00
peterl%netscape.com
b1b127a551 properly release doc & style sheet when setting attributes
git-svn-id: svn://10.0.0.236/trunk@9922 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 02:42:44 +00:00
rjc%netscape.com
f4bf910c8a Control the autoupdate via rdf. Changes from raman. Reviewed by rjc
git-svn-id: svn://10.0.0.236/trunk@9921 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 02:37:57 +00:00
rjc%netscape.com
921e6a3882 Control the autoupdate via prefereneces. Changes from raman. Reviewed by rjc
git-svn-id: svn://10.0.0.236/trunk@9920 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 02:37:24 +00:00
rjc%netscape.com
9fd5f78185 Moved autoupdt code out od MOZ_SMARTUPDATE. Changes from raman. Reviewed by rjc
git-svn-id: svn://10.0.0.236/trunk@9919 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 02:37:01 +00:00
cmanske%netscape.com
4ea3729f29 Fixed table editing bugs. Ctrl key now needed to size table with mouse
git-svn-id: svn://10.0.0.236/trunk@9918 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 01:46:12 +00:00
cmanske%netscape.com
2a7a771146 Fixed Composer bugs, changed image drag behavior in Composer window - must select image first
git-svn-id: svn://10.0.0.236/trunk@9917 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 01:44:20 +00:00
cmanske%netscape.com
051cf3669f Added strings for mouse-over image feedback and changed drag table data struct
git-svn-id: svn://10.0.0.236/trunk@9916 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 01:40:46 +00:00
kmcclusk%netscape.com
c55576e6df Fix for Irix build bustage.
git-svn-id: svn://10.0.0.236/trunk@9915 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:53:57 +00:00
despotdaemon%netscape.com
4ede8ac839 Pseudo-automatic update of changes made by dveditz@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9914 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:24:01 +00:00
joki%netscape.com
3199411b18 Add SetProgess method to nsIBrowserWindow interface
git-svn-id: svn://10.0.0.236/trunk@9913 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:22:27 +00:00
joki%netscape.com
2470c9051f Add SetProgess method
git-svn-id: svn://10.0.0.236/trunk@9912 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:21:46 +00:00
despotdaemon%netscape.com
e889dde9a5 Pseudo-automatic update of changes made by cyeh@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9911 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:13:03 +00:00
mcafee%netscape.com
8f17bab161 comment: warning not to pile anything else on the obsolete fe_globalPrefs structure
git-svn-id: svn://10.0.0.236/trunk@9910 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:11:32 +00:00
thom%netscape.com
9a8c4bdbe9 Added return value to GetHints method to make compiler happy
git-svn-id: svn://10.0.0.236/trunk@9909 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:08:31 +00:00
thom%netscape.com
566ec7b92f Added code to load menus
git-svn-id: svn://10.0.0.236/trunk@9908 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:06:05 +00:00
thom%netscape.com
60d2cf5d1d Added code to handle Menu events
git-svn-id: svn://10.0.0.236/trunk@9907 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:05:39 +00:00
thom%netscape.com
5795cd1fe0 Added resource file for menu definitions
git-svn-id: svn://10.0.0.236/trunk@9906 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:05:11 +00:00
vidur%netscape.com
fb061b8d52 Fixed document.writeln problem from http://www.legomindspring.com
git-svn-id: svn://10.0.0.236/trunk@9905 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-12 00:04:22 +00:00
sman%netscape.com
42e08c860c fixes to x400 parsing
git-svn-id: svn://10.0.0.236/trunk@9904 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 23:44:36 +00:00
sman%netscape.com
43fff83d63 better use of x400 parser
git-svn-id: svn://10.0.0.236/trunk@9903 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 23:44:14 +00:00
kmcclusk%netscape.com
057684cbd7 Added 8bit visual support.
git-svn-id: svn://10.0.0.236/trunk@9902 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 23:27:22 +00:00
sman%netscape.com
758261d32e use x400 parser for capi urls
git-svn-id: svn://10.0.0.236/trunk@9901 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 23:22:43 +00:00
jsun%netscape.com
de9c7c9f85 Remove some unnecessary comments.
git-svn-id: svn://10.0.0.236/trunk@9900 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 23:22:39 +00:00
sman%netscape.com
d6d35c2e0c bug fixes
git-svn-id: svn://10.0.0.236/trunk@9899 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 23:20:34 +00:00
jsun%netscape.com
3881a8e7ff Fixed CAPI_DestroyStreams.
git-svn-id: svn://10.0.0.236/trunk@9898 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 23:17:13 +00:00
pinkerton%netscape.com
f9b0b72f25 fix frames and property dialogs by adding back PPob 1005 that I overeagerly pruned last week.
git-svn-id: svn://10.0.0.236/trunk@9897 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:36:02 +00:00
clu%netscape.com
aba4ece1da tweaks to the encoding dialog box. also added the page title dialog box for #123601.
git-svn-id: svn://10.0.0.236/trunk@9896 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:26:13 +00:00
hyatt%netscape.com
0e8c997df5 Fixes for Aurora custom icons.
git-svn-id: svn://10.0.0.236/trunk@9895 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:25:21 +00:00
hyatt%netscape.com
656ff915d3 Fix for Aurora custom icons. Reviewed by Nisheeth and DP.
git-svn-id: svn://10.0.0.236/trunk@9894 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:24:27 +00:00
jsun%netscape.com
bc25cacb74 FetchEventsByID now calls callback one more time to send finished message.
git-svn-id: svn://10.0.0.236/trunk@9893 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:22:26 +00:00
clu%netscape.com
f549fa7a38 #123601 - headers for CPageTitle.
git-svn-id: svn://10.0.0.236/trunk@9892 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:19:47 +00:00
clu%netscape.com
90fce3eb74 implmented CPageTitle for #123601.
git-svn-id: svn://10.0.0.236/trunk@9891 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:19:44 +00:00
clu%netscape.com
8908f97b41 #123601 - ask users for page title before saving. Also tweaked at the composer encoding dialog code so the menu item would reflect encoding changes correctly
git-svn-id: svn://10.0.0.236/trunk@9890 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:19:39 +00:00
clu%netscape.com
67b7716d4d #123601 - added resource number 1522 for CPageTitle.
git-svn-id: svn://10.0.0.236/trunk@9889 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:19:36 +00:00
waterson%netscape.com
9393d087ea Fix bustage on Linux/Motif 2.0 with reflow.
git-svn-id: svn://10.0.0.236/trunk@9888 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:12:47 +00:00
jsun%netscape.com
d323240c96 non quoted-printable multiline should work now.
git-svn-id: svn://10.0.0.236/trunk@9887 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 22:07:13 +00:00
pinkerton%netscape.com
f7e694d878 Fix bug in drag and drop where we were passing parent folder and any selected children to HT, which would cause it to die. Affects drag feedback in that selected children are not displayed when their parent container is selected as well.
git-svn-id: svn://10.0.0.236/trunk@9886 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 21:52:42 +00:00
ramiro%netscape.com
61c60b3eb8 Fix the stupid toolbox assertions cause the editor toolbar dont have logos.
git-svn-id: svn://10.0.0.236/trunk@9885 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 20:52:24 +00:00
jband%netscape.com
1135eee803 added CRT_CALL decoration to callback typedefs in jsprvtd.h (it had only been used in jspubtd.h) and moved the last remaining callback typedef (JSTrapHandler) out of jsdbgapi.h and into jsprvtd.h along with the others
git-svn-id: svn://10.0.0.236/trunk@9884 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:58:15 +00:00
brendan%netscape.com
40a934496f - Use 8 space hard tabstops like god and IBM intended, but indent-tabs-mode:nil
should eliminate hard tabs anyway (so 8 is just in case one gets thru -- LXR
  was not displaying this source well with 4).
- Don't nest jsapi.h outside the idempotent-include #ifndef in dom.h.
- Include xp.h to get this code working on Windows (to cope with some kind of
  compiled header problem).
- Fix bad JS_GetEmptyStringValue calls that were treated as returning JSString*
  rather than jsval, and fed into STRING_TO_JSVAL.
- Avoid tagging and untagging a jsval to test for a null JSString* return.
- Fiddle formatting in a couple of places.
- Avoid leaving cdata->data null after realloc failure.  Use of a local temp
  (data2) also improves generated code by eliminating memory ambiguity.


git-svn-id: svn://10.0.0.236/trunk@9883 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:46:23 +00:00
slamm%netscape.com
592eefc568 Fix resources for RDF Toolbars.
git-svn-id: svn://10.0.0.236/trunk@9882 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:33:49 +00:00
pinkerton%netscape.com
a82bc29604 Docked coordinator is now smart enough to show/hide htmlpane as appropriate. Remove (again!) the logic from here.
git-svn-id: svn://10.0.0.236/trunk@9880 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:05:51 +00:00
pinkerton%netscape.com
3aa8cb7842 Initializing new member vars for bug#309770
git-svn-id: svn://10.0.0.236/trunk@9879 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:04:59 +00:00
pinkerton%netscape.com
b844b790f1 More htmlpane work. Should now appear when it is there and load the url.
git-svn-id: svn://10.0.0.236/trunk@9878 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:04:22 +00:00
slamm%netscape.com
d087d7347a Back out some changes. Accidentally check 'em in.
git-svn-id: svn://10.0.0.236/trunk@9877 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:04:21 +00:00
pinkerton%netscape.com
d55a65eb6b Fix things to work with first or second shelf being the one that can be closed.
git-svn-id: svn://10.0.0.236/trunk@9876 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:03:44 +00:00
pinkerton%netscape.com
6acfcc498d export XP_GetURLForView for HTMLpane stuff.
git-svn-id: svn://10.0.0.236/trunk@9875 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:02:10 +00:00
pinkerton%netscape.com
d609e79f3c turn on html area code for mac (now ifdef'd mac/win).
git-svn-id: svn://10.0.0.236/trunk@9874 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:01:48 +00:00
pinkerton%netscape.com
3058cbf555 turn on QAP flag and define some methods so things will link.
git-svn-id: svn://10.0.0.236/trunk@9873 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:01:09 +00:00
pinkerton%netscape.com
aa492b455d adding QA_Partner support.
git-svn-id: svn://10.0.0.236/trunk@9872 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:00:41 +00:00
pinkerton%netscape.com
a3080e873f added CTextColumn.cp for QAP support
git-svn-id: svn://10.0.0.236/trunk@9871 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:59:31 +00:00
slamm%netscape.com
abad008765 Add a dependency for resources-translations
git-svn-id: svn://10.0.0.236/trunk@9870 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:59:16 +00:00
slamm%netscape.com
697080e7ab Have the popup update when it's first posted. Fix a selection problem caused by improper if-statement grouping.
git-svn-id: svn://10.0.0.236/trunk@9869 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:58:58 +00:00
slamm%netscape.com
b19ab88fef Pull hackTranslations members.
git-svn-id: svn://10.0.0.236/trunk@9868 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:58:50 +00:00
slamm%netscape.com
c5af2f108c Delete some unused member variables.
git-svn-id: svn://10.0.0.236/trunk@9867 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:58:46 +00:00
slamm%netscape.com
5ae5ce5081 Load bookmarks for docked view. Later this will be hooked up with the toolbars.
git-svn-id: svn://10.0.0.236/trunk@9866 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:58:43 +00:00
slamm%netscape.com
02f5980d91 Remove unused function prototype.
git-svn-id: svn://10.0.0.236/trunk@9865 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:58:39 +00:00
slamm%netscape.com
5c46f0b4a4 Don't require focus for a copy. Allows copy in view source window.
git-svn-id: svn://10.0.0.236/trunk@9864 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:58:32 +00:00
slamm%netscape.com
b7587ffc10 Fix some comments that were missing '!' at the beginning of the line
git-svn-id: svn://10.0.0.236/trunk@9863 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:58:29 +00:00
slamm%netscape.com
b3b4a8c2c3 Retire the bookmarks and history translation and add navcenter translations
git-svn-id: svn://10.0.0.236/trunk@9862 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:58:18 +00:00
slamm%netscape.com
30417a0709 Fixing close window bug for html dialogs. Make html dialogs have the same translations as the browser. This may be overkill. We can trim back the list later. Kill some long dead code.
git-svn-id: svn://10.0.0.236/trunk@9861 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:58:12 +00:00
slamm%netscape.com
7758150121 Compress consecutive spaces and tabs down to one space. Saves about 40k bytes.
git-svn-id: svn://10.0.0.236/trunk@9860 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:58:09 +00:00
troy%netscape.com
72786e028d Fixed leak of reflow command
git-svn-id: svn://10.0.0.236/trunk@9859 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:57:54 +00:00
vidur%netscape.com
9f52b981fe Added stopgap code for aliased constructors
git-svn-id: svn://10.0.0.236/trunk@9858 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:31:38 +00:00
sman%netscape.com
98245fe0d9 more updates
git-svn-id: svn://10.0.0.236/trunk@9857 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:23:31 +00:00
jsun%netscape.com
509191a3f7 Reads from CAPI much faster
git-svn-id: svn://10.0.0.236/trunk@9856 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:21:56 +00:00
spider%netscape.com
fd4a52eaad Remove ref to calnetwork
git-svn-id: svn://10.0.0.236/trunk@9855 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:12:07 +00:00
vidur%netscape.com
833ee5f0d5 Added stopgap code for aliased constructors
git-svn-id: svn://10.0.0.236/trunk@9854 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 18:05:11 +00:00
dcone%netscape.com
ec0f060783 fixed some focus bugs
git-svn-id: svn://10.0.0.236/trunk@9853 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 17:49:49 +00:00
dcone%netscape.com
17375f82e9 fixed focus bugs
git-svn-id: svn://10.0.0.236/trunk@9852 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 17:49:32 +00:00
dcone%netscape.com
0f5f3dad67 focus bug fixes
git-svn-id: svn://10.0.0.236/trunk@9851 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 17:47:50 +00:00
sman%netscape.com
e4f3cf32cd bumped maxrepeat up to 17
git-svn-id: svn://10.0.0.236/trunk@9850 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 17:39:46 +00:00
sman%netscape.com
e704f6fd02 need to add x400 parsing to deal with cst server login
git-svn-id: svn://10.0.0.236/trunk@9849 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 17:35:45 +00:00
spider%netscape.com
da872f430b Fix for html
git-svn-id: svn://10.0.0.236/trunk@9848 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 17:24:08 +00:00
terry%netscape.com
bcb7a51ecb Added new "Layout" component to NGLayout.
git-svn-id: svn://10.0.0.236/trunk@9847 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 16:59:02 +00:00
spider%netscape.com
d692b45ef9 Remove calnetwork lib
git-svn-id: svn://10.0.0.236/trunk@9846 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 16:27:02 +00:00
ramiro%netscape.com
36e090e4f2 Split MOZILLA_MOTIF_SEARCH_PATH into two: MOZILLA_MOTIF_INCLUDE_SEARCH_PATH
and MOZILLA_MOTIF_LIB_SEARCH_PATH to deal with "smart" oses like hpux
which place motif headers and libraries in different places.


git-svn-id: svn://10.0.0.236/trunk@9842 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 13:27:04 +00:00
rjc%netscape.com
c22092efe0 More polling mechanism testing.
git-svn-id: svn://10.0.0.236/trunk@9839 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 11:05:50 +00:00
pierre%netscape.com
b93acd208b fix crash when GetFontMetrics() returns nil, which should never happen of course
git-svn-id: svn://10.0.0.236/trunk@9838 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 10:45:26 +00:00
pierre%netscape.com
835c0822af fix SetClipRegion + FillRect / added a temp SetFont / dispose mMainRegion
git-svn-id: svn://10.0.0.236/trunk@9837 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 10:37:36 +00:00
pierre%netscape.com
a55ce54bb1 fix crash on update
git-svn-id: svn://10.0.0.236/trunk@9836 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 10:19:26 +00:00
pierre%netscape.com
dad8efe8bd fix uninitialized mWindowRegion / make the window title bar visible
git-svn-id: svn://10.0.0.236/trunk@9835 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 10:17:02 +00:00
brendan%netscape.com
a006e5dfd3 - Fix js_AllocTryNotes to track how much space has been allocated from tempPool
for trynotes in the current code generator, and grow that space as needed.
- Avoid dividing by a multiple of 3 (JSTryNote is 3 ptrdiff_t's) via (char *)
  arithmetic.


git-svn-id: svn://10.0.0.236/trunk@9834 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 09:25:15 +00:00
pierre%netscape.com
b945f26976 initialize member variables to 0
git-svn-id: svn://10.0.0.236/trunk@9833 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 09:13:02 +00:00
pierre%netscape.com
526d344aad in the works / return hard-coded values instead of 0's
git-svn-id: svn://10.0.0.236/trunk@9832 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 09:12:37 +00:00
pierre%netscape.com
e08ee4cc26 initialize mBounds
git-svn-id: svn://10.0.0.236/trunk@9831 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 09:07:19 +00:00
pierre%netscape.com
d3f5c5243c added and removed plenty of files
git-svn-id: svn://10.0.0.236/trunk@9830 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 09:02:46 +00:00
pierre%netscape.com
e63ed115af added nsDTDUtils
git-svn-id: svn://10.0.0.236/trunk@9829 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 09:02:13 +00:00
pierre%netscape.com
70e16e24c6 added nsPluginViewer
git-svn-id: svn://10.0.0.236/trunk@9828 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 09:01:42 +00:00
rjc%netscape.com
2d16ebc092 Polling mechanism test.
git-svn-id: svn://10.0.0.236/trunk@9827 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 07:45:49 +00:00
mcafee%netscape.com
86ad096869 Moved privacy prefs from Advanced pane to new privacy pane. Removed some white space and bogus comments.
git-svn-id: svn://10.0.0.236/trunk@9826 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 06:48:39 +00:00
kipp%netscape.com
c97827f9d1 Updated Makefile to have the right source file list
git-svn-id: svn://10.0.0.236/trunk@9825 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 05:53:55 +00:00
kipp%netscape.com
1e404fa6c0 Implement ListTag on bullet-frame's so that they dump better
git-svn-id: svn://10.0.0.236/trunk@9824 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 05:42:31 +00:00
kipp%netscape.com
1f0fa5c437 inlined IsSynthetic implementation AND made it work
git-svn-id: svn://10.0.0.236/trunk@9823 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 05:38:25 +00:00
kipp%netscape.com
9f507487e2 Make full-screen plugins deactivate better
git-svn-id: svn://10.0.0.236/trunk@9822 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 04:43:27 +00:00
kipp%netscape.com
fd10278074 Use InitialReflow to layout the image document instead of ResizeReflow so that images layout properly
git-svn-id: svn://10.0.0.236/trunk@9817 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 04:20:30 +00:00
kipp%netscape.com
9685925ebc Removed a bunch of bogus code that (a) did very little (b) doesn't work for image documents
git-svn-id: svn://10.0.0.236/trunk@9815 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 04:17:07 +00:00
kipp%netscape.com
fe3e1e70ce Check in of somewhat bogus handling of the notify values (which is going away!)
git-svn-id: svn://10.0.0.236/trunk@9814 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 04:16:18 +00:00
kipp%netscape.com
1eb826e1fa Support length values for vertical-align
git-svn-id: svn://10.0.0.236/trunk@9813 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 04:15:03 +00:00
kipp%netscape.com
9f2aae11bb Added length tests
git-svn-id: svn://10.0.0.236/trunk@9812 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 04:14:40 +00:00
troy%netscape.com
4e1f178389 Changed new frame construction code to handle floaters
git-svn-id: svn://10.0.0.236/trunk@9811 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 04:13:29 +00:00
jband%netscape.com
8d91096b15 (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
git-svn-id: svn://10.0.0.236/trunk@9810 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 04:04:26 +00:00
kipp%netscape.com
7c46498749 Applied patch to make the timer code independent of motif (thanks goes to cls@seewood.org)
git-svn-id: svn://10.0.0.236/trunk@9809 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 03:58:43 +00:00
gagan%netscape.com
c0154ce534 Added cachelib for Nu_cache. Should not affect the builds.
git-svn-id: svn://10.0.0.236/trunk@9808 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 02:44:07 +00:00
gagan%netscape.com
2ffc303f9b Added nu_cache define.
git-svn-id: svn://10.0.0.236/trunk@9807 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 02:43:05 +00:00
spider%netscape.com
b67f00df07 Implemented asynchronous stream manager for loading multiple
XML UI definitions simultaneously


git-svn-id: svn://10.0.0.236/trunk@9806 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 02:26:35 +00:00
peterl%netscape.com
6b3b4ad6ca added strength api to style rule
git-svn-id: svn://10.0.0.236/trunk@9805 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 02:07:58 +00:00
peterl%netscape.com
5b77f89a4f added important rule support
git-svn-id: svn://10.0.0.236/trunk@9804 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 02:07:46 +00:00
peterl%netscape.com
6185326760 added important rule support
factored declaration processing to a static method


git-svn-id: svn://10.0.0.236/trunk@9803 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 02:07:05 +00:00
peterl%netscape.com
cd8f11ec85 sort style rules by strength
git-svn-id: svn://10.0.0.236/trunk@9802 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 02:05:30 +00:00
peterl%netscape.com
f0ab82d859 added strength
git-svn-id: svn://10.0.0.236/trunk@9801 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 02:05:07 +00:00
thom%netscape.com
d61d9c4575 added new version of getWidth
git-svn-id: svn://10.0.0.236/trunk@9800 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 01:46:45 +00:00
thom%netscape.com
6a7c053dd0 Added new version of getWidth
git-svn-id: svn://10.0.0.236/trunk@9799 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 01:44:43 +00:00
cls%seawood.org
d406d1f9c9 Sync'd.
git-svn-id: svn://10.0.0.236/trunk@9796 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 01:24:33 +00:00
spider%netscape.com
4e00a8e94a WIP: Stream Manager
git-svn-id: svn://10.0.0.236/trunk@9795 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 01:16:25 +00:00
law%netscape.com
cd57b240f5 Completing work on Win98 integration feature
git-svn-id: svn://10.0.0.236/trunk@9794 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 01:14:08 +00:00
cls%seawood.org
bca0cbbde5 Resurrected tweak_nspr kludge for --enable-nspr
git-svn-id: svn://10.0.0.236/trunk@9793 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 01:10:08 +00:00
rickg%netscape.com
396baa380e improved DTD context for better style/structure handling
git-svn-id: svn://10.0.0.236/trunk@9792 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 00:54:36 +00:00
law%netscape.com
9a36fcd388 Fix for Bugzilla bug #489; thanks to Klaus Malorny (Klaus.Malorny@knipp.de) for reporting it and for providing the fix!
git-svn-id: svn://10.0.0.236/trunk@9791 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 00:53:29 +00:00
law%netscape.com
488cc4562f Debug stuff
git-svn-id: svn://10.0.0.236/trunk@9790 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 00:49:00 +00:00
law%netscape.com
33324eac4f Completing check-in of Win98 integration feature
git-svn-id: svn://10.0.0.236/trunk@9789 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 00:46:05 +00:00
law%netscape.com
ee940a4b44 Fix for 4.5 bug; enable -P to be ignored on second launch
git-svn-id: svn://10.0.0.236/trunk@9788 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 00:41:53 +00:00
kipp%netscape.com
12ece32c94 Revised various vertical alignment cases to use font introspection data instead of hard coding in values; corrected middle computation.
git-svn-id: svn://10.0.0.236/trunk@9787 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 23:43:12 +00:00
kipp%netscape.com
ce50d36a6c Fixed a bug with percent values being converted to strings
git-svn-id: svn://10.0.0.236/trunk@9786 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 23:42:18 +00:00
kipp%netscape.com
40c9ee9aaa Added new font intropsection methods to nsIFontMetrics
git-svn-id: svn://10.0.0.236/trunk@9785 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 23:41:25 +00:00
morse%netscape.com
cd1fc89bea fix mac bustage
git-svn-id: svn://10.0.0.236/trunk@9783 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 23:02:23 +00:00
cyeh%netscape.com
cd5f53280c remove dependencies on platform specific installs of perl, macro-ize perl
tool calls


git-svn-id: svn://10.0.0.236/trunk@9782 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 22:51:45 +00:00
cyeh%netscape.com
0051acb625 macro-ize call to PERL
git-svn-id: svn://10.0.0.236/trunk@9781 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 22:50:21 +00:00
mcafee%netscape.com
a7194cbcf7 New privacy preference pane class
git-svn-id: svn://10.0.0.236/trunk@9776 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 22:35:39 +00:00
troy%netscape.com
26a69078c9 Fixed it so bullets work again
git-svn-id: svn://10.0.0.236/trunk@9775 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 22:28:55 +00:00
mjudge%netscape.com
b968139da0 IDIOT!! sorry. added 2 of 4 files
git-svn-id: svn://10.0.0.236/trunk@9774 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 22:25:05 +00:00
shaver%netscape.com
cab0809536 perignon grows (and throbs)
git-svn-id: svn://10.0.0.236/trunk@9773 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 22:14:52 +00:00
dcone%netscape.com
c0daadaa20 added textfield
git-svn-id: svn://10.0.0.236/trunk@9770 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 21:33:56 +00:00
morse%netscape.com
5bde2697ba remove 'remember this decision' from signon nag box
git-svn-id: svn://10.0.0.236/trunk@9769 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 21:27:13 +00:00
dcone%netscape.com
2db5860769 added focus managment, textfields
git-svn-id: svn://10.0.0.236/trunk@9768 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 21:26:46 +00:00
dcone%netscape.com
766161cc44 added focus managment
git-svn-id: svn://10.0.0.236/trunk@9767 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 21:26:01 +00:00
dcone%netscape.com
9e1c876e58 Added focus managment
git-svn-id: svn://10.0.0.236/trunk@9766 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 21:25:47 +00:00
dcone%netscape.com
d081c01058 added textfield widget, focus management
git-svn-id: svn://10.0.0.236/trunk@9765 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 21:25:10 +00:00
mjudge%netscape.com
fe6b790a23 Checks for ender only in #ifdef ENDERS mjudge
git-svn-id: svn://10.0.0.236/trunk@9764 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 21:15:28 +00:00
wtc%netscape.com
adfc66903c In CreateMacPathFromUnixPath, return paramErr if unixPath is nil.
git-svn-id: svn://10.0.0.236/trunk@9763 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 21:08:47 +00:00
troy%netscape.com
f75908c03b Backed out unintentional checkin
git-svn-id: svn://10.0.0.236/trunk@9762 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 21:05:02 +00:00
troy%netscape.com
906fdf619c Hooked back up IFRAME
git-svn-id: svn://10.0.0.236/trunk@9761 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 21:03:16 +00:00
gagan%netscape.com
3b534f76f8 Removed the silly useless parameter in NET_CleanUpCache.
git-svn-id: svn://10.0.0.236/trunk@9760 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:55:22 +00:00
gagan%netscape.com
4d5a191c8b cvs to be blamed for a bad merge. Moving to void parameter on NET_CleanupCache. Was giving errors on Mac.
git-svn-id: svn://10.0.0.236/trunk@9759 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:54:41 +00:00
wtc%netscape.com
02280d597b In CreateMacPathFromUnixPath, the length of the macPath buffer
should be (strlen(unixPath) + 2) instead of (strlen(unixPath) * 2).
This is because for a zero-length unixPath, the macPath is ":",
which needs two bytes.  Thanks to Patrick Beard <beard@netscape.com>
and Steve Dagley <sdagley@netscape.com> for reporting the bug and
suggesting a fix.


git-svn-id: svn://10.0.0.236/trunk@9758 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:49:14 +00:00
brendan%netscape.com
9481d98451 Don't CHECK_BRANCH(len) in GOSUB (len must be > 0) or at all in RETSUB.
git-svn-id: svn://10.0.0.236/trunk@9757 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:46:37 +00:00
pinkerton%netscape.com
449c40a89d pass in the main browser context to HTNewPane() for what'sRelated info.
git-svn-id: svn://10.0.0.236/trunk@9756 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:43:45 +00:00
pinkerton%netscape.com
0782be9f08 Changed BuildHTPane to take a context where it might have to display What'sRelated info. Now registering each kind of view (shack, popdown, embedded, standalone) with HT so it knows to give the right look/behavior.
git-svn-id: svn://10.0.0.236/trunk@9755 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:43:19 +00:00
brendan%netscape.com
97918d4e10 - 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.


git-svn-id: svn://10.0.0.236/trunk@9754 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:42:26 +00:00
pinkerton%netscape.com
4d371c0d95 Fix bug#309770 (refresh urltimer bug). added a new member (the reload policy) to CHTMLView so that it can be set correctly in SpendTime(). Now passing the eitire URL_Struct to SetURLTimer() to avoid long param lists.
git-svn-id: svn://10.0.0.236/trunk@9753 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:42:05 +00:00
troy%netscape.com
a445aaa66a Fixed frameset crash
git-svn-id: svn://10.0.0.236/trunk@9752 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:37:19 +00:00
norris%netscape.com
8105e6a166 Fix 312954 "monkey: on HPUX, special case failure when dividing by -0"
git-svn-id: svn://10.0.0.236/trunk@9751 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:27:16 +00:00
brendan%netscape.com
efc54c518a - Added commentary for TOK_DEFSHARP nodes explaining pn_kid's purpose.
- Don't over-commend nearby #endifs at the expense of legibility.


git-svn-id: svn://10.0.0.236/trunk@9750 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:13:06 +00:00
gagan%netscape.com
ec0bf10c03 Remaining changes from Nu_Cache. Added nucacheproto.c/h.
git-svn-id: svn://10.0.0.236/trunk@9749 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:11:13 +00:00
morse%netscape.com
624c7671ee Change 'About Site' to 'Display Site Info'
git-svn-id: svn://10.0.0.236/trunk@9748 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:06:27 +00:00
gagan%netscape.com
14caf39fd4 Nu_cache leftover changes.
git-svn-id: svn://10.0.0.236/trunk@9747 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:00:57 +00:00
gagan%netscape.com
e621d4348a nu_cache changes.
git-svn-id: svn://10.0.0.236/trunk@9746 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 19:58:35 +00:00
blizzard%appliedtheory.com
620f9317ad Bring fe up to date which fe header files
git-svn-id: svn://10.0.0.236/trunk@9745 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 19:58:18 +00:00
brendan%netscape.com
eea9ddc5af - Use JSBool for MatchChar's return type and values.
- Spacing nits.


git-svn-id: svn://10.0.0.236/trunk@9744 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 19:58:15 +00:00
gagan%netscape.com
79ca86c7de remaining changes from nu_cache.
git-svn-id: svn://10.0.0.236/trunk@9743 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 19:57:12 +00:00
troy%netscape.com
0c4b9521d5 Phase one of frame construction changes
git-svn-id: svn://10.0.0.236/trunk@9742 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 19:32:14 +00:00
brendan%netscape.com
ee9e8bb28a Remove excessive JS_FRIEND_API uses; clean up nits.
git-svn-id: svn://10.0.0.236/trunk@9740 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 19:18:23 +00:00
rods%netscape.com
4af961e25a GetPosition now uses a binary search for locating the cursor poistion. Also, selection now
uses the half width of a character for moving selection to the next character.


git-svn-id: svn://10.0.0.236/trunk@9739 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 19:18:01 +00:00
mcafee%netscape.com
c3765026b1 Adding Window|Privacy Tools|Display Site Info
git-svn-id: svn://10.0.0.236/trunk@9738 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 19:08:09 +00:00
blizzard%appliedtheory.com
8a40ae10c1 Commit changes from Michael O'Reilly <michael@metal.iinet.net.au>
git-svn-id: svn://10.0.0.236/trunk@9736 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 17:57:58 +00:00
vidur%netscape.com
59e74e9373 Got rid of extra release in Item() method of childNodes array of nsGenericHTMLContent
git-svn-id: svn://10.0.0.236/trunk@9735 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 17:51:30 +00:00
shaver%netscape.com
a5b1f502b6 clean up old assertions and remove vestigial tryLimit
git-svn-id: svn://10.0.0.236/trunk@9734 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 17:45:37 +00:00
karnaze%netscape.com
0247d3a198 in document, renamed nsHTMLFrame.cpp, nsHTMLFrameset.h, nsHTMLFrameset.cpp
git-svn-id: svn://10.0.0.236/trunk@9733 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 17:23:31 +00:00
vidur%netscape.com
6ea82397a3 Fixes to get Rotate.html working
git-svn-id: svn://10.0.0.236/trunk@9732 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 17:11:46 +00:00
shaver%netscape.com
e0896531eb fix memory leak
git-svn-id: svn://10.0.0.236/trunk@9731 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 14:56:58 +00:00
ramiro%netscape.com
16bd46f732 Add support for fixed html pain sizing.
git-svn-id: svn://10.0.0.236/trunk@9730 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 14:55:19 +00:00
ramiro%netscape.com
44cb0fff3d Add a virtual method for specifying the parent to the tree. Have the
RDFTreeView subclasses create the tree.  All this stuff is needed to create
a hierarchy in which the html pain can be created dynamically and sized to
an either arbitrary percentage or fixed height.


git-svn-id: svn://10.0.0.236/trunk@9729 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 14:35:05 +00:00
shaver%netscape.com
a4892e98bf first Perignon work (not built by anything yet) and generic attribute support
git-svn-id: svn://10.0.0.236/trunk@9728 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 14:21:43 +00:00
brendan%netscape.com
fcb837aa66 cvsquery now helps 3.0 JS avoid 'event has no properties' errors.
git-svn-id: svn://10.0.0.236/trunk@9727 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 07:27:31 +00:00
brendan%netscape.com
5867a55bdc Need to prevent GC activation during compile on the compiling context, not
just when evaluating old-style switch case expressions.


git-svn-id: svn://10.0.0.236/trunk@9726 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 07:09:44 +00:00
cls%seawood.org
b63175db20 Added NO_MDUPDATE to NSPR kludge make flags.
git-svn-id: svn://10.0.0.236/trunk@9724 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 05:24:12 +00:00
cls%seawood.org
294f5ecf41 Turned FULL_STATIC_BUILD on by default. Turn it off via --enable switches: min-shared, oji, or java. Turned unix ldap off by default. Added kludge to build NSPR with a separate build process. Added temp --enable-nspr to allow users to still use autoconf for NSPR build.
git-svn-id: svn://10.0.0.236/trunk@9715 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 04:08:00 +00:00
cls%seawood.org
3318a39861 Don't set NSPRDIR if using autoconf. Ignore automatic settings made by MOZ_LITE or lack of MOZ_LITE. Don't add -DDEVELOPER_DEBUG to DEFINES if using autoconf.
git-svn-id: svn://10.0.0.236/trunk@9712 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 03:58:52 +00:00
cls%seawood.org
d78cf05d04 Replaced tweak_nspr kludge with empty target for autoconf.
git-svn-id: svn://10.0.0.236/trunk@9711 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 03:53:20 +00:00
cls%seawood.org
0970218907 Moved libmisc & libprgrss in BASIC_LIBS so that mailto would link ifndef JAVA_OR_OJI.
git-svn-id: svn://10.0.0.236/trunk@9710 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 03:51:36 +00:00
valeski%netscape.com
c33b41f8cc fixing build bustage.
git-svn-id: svn://10.0.0.236/trunk@9709 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 03:28:20 +00:00
hyatt%netscape.com
a65d91f309 Fixes for docking/undocking behavior.
git-svn-id: svn://10.0.0.236/trunk@9708 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 02:35:27 +00:00
spider%netscape.com
442ef3d21b Support new gfx FontMetrics api
git-svn-id: svn://10.0.0.236/trunk@9707 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 02:09:20 +00:00
spider%netscape.com
51035da4ff Fix to return app units instead of twips in GetWidth API call
git-svn-id: svn://10.0.0.236/trunk@9706 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 02:08:20 +00:00
waterson%netscape.com
283e5bb163 Added a call to reflow when all connections complete if the context contains unsized images. r=law
git-svn-id: svn://10.0.0.236/trunk@9705 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:19:49 +00:00
peterl%netscape.com
1adaca9cae added to string support
git-svn-id: svn://10.0.0.236/trunk@9704 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:19:26 +00:00
peterl%netscape.com
ab0a6e6dd0 removed assert on x-height unit
git-svn-id: svn://10.0.0.236/trunk@9703 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:18:27 +00:00
peterl%netscape.com
0ef705b4ba fixed filtering of valid ID selectors
git-svn-id: svn://10.0.0.236/trunk@9702 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:18:06 +00:00
peterl%netscape.com
b2413c6722 sync css declaration to xif with new api
git-svn-id: svn://10.0.0.236/trunk@9701 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:16:25 +00:00
peterl%netscape.com
4a2003b48a added to string support for style= attributes
git-svn-id: svn://10.0.0.236/trunk@9700 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:15:23 +00:00
waterson%netscape.com
91f2930140 Added code to reflow doc when all connections complete if it contains an unsized image. r=sdagley
git-svn-id: svn://10.0.0.236/trunk@9699 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:06:56 +00:00
despotdaemon%netscape.com
df8781f1c9 Pseudo-automatic update of changes made by wtc@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9698 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:06:36 +00:00
waterson%netscape.com
d67b4d3f6b Added call to reflow document when all connections complete if it contains an unsized image.
git-svn-id: svn://10.0.0.236/trunk@9697 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:05:46 +00:00
despotdaemon%netscape.com
042141318b Pseudo-automatic update of changes made by wtc@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9696 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:05:23 +00:00
waterson%netscape.com
328e79a007 Added code to the process_deferred_image_info() callback to check for new image info on a visible image and do reflow if necessary. r=nisheeth
git-svn-id: svn://10.0.0.236/trunk@9695 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:04:56 +00:00
waterson%netscape.com
5c62edba3a Added code to just lay out an image and mark the context as requiring reflow when an unsized image is encountered. Also, dont bother calling LO_SetImageInfo() if w/h hasnt changed. r=nisheeth,mjudge
git-svn-id: svn://10.0.0.236/trunk@9694 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:04:51 +00:00
waterson%netscape.com
4e1c527b82 Added a slot to MWContext that indicates whether or not the context requires reflow because an image without width or height was layed out with a default size.
git-svn-id: svn://10.0.0.236/trunk@9693 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:04:40 +00:00
mcafee%netscape.com
6eff3c1884 Make stubfe link on Solaris
git-svn-id: svn://10.0.0.236/trunk@9692 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:03:02 +00:00
despotdaemon%netscape.com
116624b1b0 Pseudo-automatic update of changes made by cyeh@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9691 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 01:01:21 +00:00
karnaze%netscape.com
3c618c7265 changed case sensitive include for unix
git-svn-id: svn://10.0.0.236/trunk@9690 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 00:39:38 +00:00
valeski%netscape.com
e0eaf7f00b The changes apply to MODULAR_NETLIB only
mozilla/module/nsINetFile.h
MODULAR_NETLIB only. Added the nsINetFile interface header.

mozilla/module/nsNetFile.cpp
MODULAR_NETLIB only. Added the nsINetFile interface implementation.

mozilla/module/nsNetFile.h
MODULAR_NETLIB only. Added the nsNetFile header.

mozilla/main/mkgeturl.c
MODULAR_NETLIB only. Added directory and file token initialization for new ns_net_file code.

mozilla/main/net_xp_file.h
MODULAR_NETLIB only. Added the new readline routine for ns_net_file.

mozilla/module/makefile.win
MODULAR_NETLIB only. Added the nsNetFile.cpp file to compilation list.

mozilla/module/nsNetService.cpp
MODULAR_NETLIB only. Added the static nsNetFile instance so it gets initailized.

mozilla/module/nsNetStubs.cpp
MODULAR_NETLIB only. Added NET_I_XP_FILE* versions of XP_FILE routines. These routines are compiled and used when NS_NET_FILE is defined.


git-svn-id: svn://10.0.0.236/trunk@9689 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 00:32:40 +00:00
hyatt%netscape.com
176e8c5451 Fixing Related Links.
git-svn-id: svn://10.0.0.236/trunk@9688 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 00:24:54 +00:00
valeski%netscape.com
78ea06c997 fixing compile warning
git-svn-id: svn://10.0.0.236/trunk@9686 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 00:08:33 +00:00
hyatt%netscape.com
3e45e0fcd8 Docked and popup windows can now co-exist.
git-svn-id: svn://10.0.0.236/trunk@9685 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 00:01:00 +00:00
despotdaemon%netscape.com
0236e06fda Pseudo-automatic update of changes made by mang@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9684 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 23:58:27 +00:00
kipp%netscape.com
ba9d85891c Checked in some bug fixes from michaelp to make fullscreen plugins work better/more often
git-svn-id: svn://10.0.0.236/trunk@9683 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 23:52:16 +00:00
kipp%netscape.com
d87f9d1060 Support (in a shaky way) some various and sundry mime types for plugins
git-svn-id: svn://10.0.0.236/trunk@9682 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 23:51:43 +00:00
kipp%netscape.com
596e7c0a01 Added new source
git-svn-id: svn://10.0.0.236/trunk@9681 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 23:51:19 +00:00
kipp%netscape.com
8957ccb149 new
git-svn-id: svn://10.0.0.236/trunk@9680 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 23:50:46 +00:00
karnaze%netscape.com
e382cf5f41 converted frame/iframe/frameset to new layout/content separation
git-svn-id: svn://10.0.0.236/trunk@9679 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 23:30:30 +00:00
hyatt%netscape.com
9857b1a59e Moving the control strip underneath the title strip.
git-svn-id: svn://10.0.0.236/trunk@9678 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 23:18:38 +00:00
hyatt%netscape.com
5d50ddb72d Fixing damage caused by internationalization. Making it use the right UI font (MS Sans Serif).
git-svn-id: svn://10.0.0.236/trunk@9677 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 23:11:20 +00:00
hyatt%netscape.com
400154027a Removed CIntlWins drawtext call. When they get it working on Windows 95, then
we can hook it back up.


git-svn-id: svn://10.0.0.236/trunk@9676 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 23:05:01 +00:00
spider%netscape.com
949e30c64f Use twips on width calculations for font metrics in app
git-svn-id: svn://10.0.0.236/trunk@9675 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 22:24:00 +00:00
buster%netscape.com
4fb1136a6c integrate caption with new frame creation code
git-svn-id: svn://10.0.0.236/trunk@9674 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 22:18:01 +00:00
despotdaemon%netscape.com
148d6b590e Pseudo-automatic update of changes made by jsun@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9673 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 22:16:08 +00:00
pinkerton%netscape.com
79727e94d8 fix build bustage (removed call to HT_ToggleTreeMode)
git-svn-id: svn://10.0.0.236/trunk@9672 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 21:36:14 +00:00
buster%netscape.com
f97d444d8f integrates with new frame creation methods
git-svn-id: svn://10.0.0.236/trunk@9671 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 21:34:10 +00:00
hyatt%netscape.com
74584ed8b6 Fixes to the toolbar code.
git-svn-id: svn://10.0.0.236/trunk@9670 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 21:30:28 +00:00
vidur%netscape.com
5e856a67d9 Added nsIJSScriptObject interface to nsGenericHTMLContent class and fixed element.childNodes
git-svn-id: svn://10.0.0.236/trunk@9669 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 21:02:42 +00:00
vidur%netscape.com
c63cdad1a0 Adjusted to change in signature for FE_SetRefreshURLTimer
git-svn-id: svn://10.0.0.236/trunk@9665 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 20:56:47 +00:00
pnunn%netscape.com
22be840209 fix for #309770. Port fix from 4.06 to Moz.
git-svn-id: svn://10.0.0.236/trunk@9663 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 20:47:35 +00:00
hyatt%netscape.com
b06ce42e18 Fixes and improvements to NavCenter.
git-svn-id: svn://10.0.0.236/trunk@9657 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 20:26:33 +00:00
hyatt%netscape.com
bb7136efe1 Added notion of window type (standalone, docked, embedded, popup) to RDF.
git-svn-id: svn://10.0.0.236/trunk@9656 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 20:26:16 +00:00
buster%netscape.com
e325a433cd many fixes that effect http://www.mozilla.org and related pages.
these fixes are for nested tables with percent widths, for tables including both rowspan and colspan,
and for tables with only a single column.
some rounding errors were eliminated.
more debugging output, and some new assertions.


git-svn-id: svn://10.0.0.236/trunk@9655 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 20:00:40 +00:00
slamm%netscape.com
b651be006c Pull netscape-specific hack.
git-svn-id: svn://10.0.0.236/trunk@9654 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 20:00:33 +00:00
slamm%netscape.com
c669313675 Get the 'Change Log' link right. Set 'LANGUAGE=JavaScript' for the SCRIPT tag
git-svn-id: svn://10.0.0.236/trunk@9653 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:29:00 +00:00
brendan%netscape.com
1ac77c94fe Remove javaData, left over from original LiveConnect.
git-svn-id: svn://10.0.0.236/trunk@9650 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:20:07 +00:00
brendan%netscape.com
74114cf984 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,,]).


git-svn-id: svn://10.0.0.236/trunk@9649 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:18:01 +00:00
pnunn%netscape.com
056cdd590e fix for #309770. Porting "RefreshURLTimer" fix from 4.06 to 5.0.
git-svn-id: svn://10.0.0.236/trunk@9648 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:13:11 +00:00
pnunn%netscape.com
2f8cb685c4 fix for #309770. Porting "RefreshURLTimer" fix from 4.06 to Moz
git-svn-id: svn://10.0.0.236/trunk@9647 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:12:31 +00:00
pnunn%netscape.com
9f7e6c5e8a fix for #309770. Porting "RefreshURLTimer" fix from 4.06 to Moz.
git-svn-id: svn://10.0.0.236/trunk@9646 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:11:22 +00:00
pnunn%netscape.com
1558689e2b fix for #309770. Porting RefreshURLTimer fix from 4.06 to Moz.
git-svn-id: svn://10.0.0.236/trunk@9645 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:08:32 +00:00
pnunn%netscape.com
3ef73042ff fix for bug#309770. Porting "RefreshURLTimer" fix from 4.06 to Moz.
git-svn-id: svn://10.0.0.236/trunk@9644 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:06:55 +00:00
rjc%netscape.com
b49b48f521 Fix some more drag&drop issues (regarding re-ordering of existing local/remote items). Also, on PowerPPC, force compiler to use no byte padding regarding structure alignment.
git-svn-id: svn://10.0.0.236/trunk@9643 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:06:23 +00:00
spider%netscape.com
0fba81dc0a Checkin for sman. Support for remote CAPI and User def's
git-svn-id: svn://10.0.0.236/trunk@9642 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:00:40 +00:00
pinkerton%netscape.com
0f24b39bdf use CAdSpaceView class for embedded html area.
git-svn-id: svn://10.0.0.236/trunk@9640 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 18:19:19 +00:00
pinkerton%netscape.com
67af347c93 Turned off (ifdef'd) the property to not use selection in the tree view so we get d&d even in single-click modes.
git-svn-id: svn://10.0.0.236/trunk@9639 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 18:19:08 +00:00
pinkerton%netscape.com
44aa69ed84 don't bother trying to close the adSpace shelf here, RestorePlace() usurps it.
git-svn-id: svn://10.0.0.236/trunk@9638 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 18:19:02 +00:00
pinkerton%netscape.com
5d51b8377f close adspace shelf by default. Needs to be done after RestorePlace() so it cannot be done in the coordinator.
git-svn-id: svn://10.0.0.236/trunk@9637 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 18:17:54 +00:00
pinkerton%netscape.com
1894fc9484 register CAdSpaceView
git-svn-id: svn://10.0.0.236/trunk@9635 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 18:17:13 +00:00
pinkerton%netscape.com
78e0c6e329 added CAdSpaceView to special case things for the embedded html pane.
git-svn-id: svn://10.0.0.236/trunk@9634 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 18:17:00 +00:00
mcafee%netscape.com
fe233fddf4 debug stuff for add_row()
git-svn-id: svn://10.0.0.236/trunk@9633 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 18:10:27 +00:00
mcafee%netscape.com
d6c0c53360 HT_PaneFromURL() needs a context passed in from XFE_DisplayBuiltin(), so we now pass the context along.
git-svn-id: svn://10.0.0.236/trunk@9632 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 18:07:10 +00:00
rods%netscape.com
0cf8a140a9 Removed TraverseBlockContent static function
git-svn-id: svn://10.0.0.236/trunk@9631 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 17:42:21 +00:00
slamm%netscape.com
710729e972 Fix the 'Change Log' like to pass along the branch and the root. Trim the email addresses of netscape folks (i.e. slamm%netscape.com becomes slamm).
git-svn-id: svn://10.0.0.236/trunk@9630 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 17:37:12 +00:00
despotdaemon%netscape.com
f0b2db257c Pseudo-automatic update of changes made by blizzard@appliedtheory.com.
git-svn-id: svn://10.0.0.236/trunk@9629 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 17:22:07 +00:00
despotdaemon%netscape.com
87ac646444 Pseudo-automatic update of changes made by shaver@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9627 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 17:18:46 +00:00
spider%netscape.com
698f313f61 Remove pull_trex_ns target, no longer needed
git-svn-id: svn://10.0.0.236/trunk@9626 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 16:41:42 +00:00
kipp%netscape.com
5d665f2238 Support direct loading of image documents by using the GetImageFromStream method on the image group.
git-svn-id: svn://10.0.0.236/trunk@9625 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 16:19:30 +00:00
kipp%netscape.com
874cb1072c Removed some cruft
git-svn-id: svn://10.0.0.236/trunk@9624 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 16:18:40 +00:00
kipp%netscape.com
f9928a5225 Support reconnect callback
git-svn-id: svn://10.0.0.236/trunk@9623 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 16:17:55 +00:00
kipp%netscape.com
1b47ada470 Added GetImageFromStream
git-svn-id: svn://10.0.0.236/trunk@9622 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 16:15:40 +00:00
kipp%netscape.com
8684bc6d2a Added Reconnect call-back to NS_NewImageNetContext
git-svn-id: svn://10.0.0.236/trunk@9621 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 16:14:49 +00:00
kipp%netscape.com
c759fe4fbd whitespace fixup
git-svn-id: svn://10.0.0.236/trunk@9620 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 16:14:16 +00:00
kipp%netscape.com
c0384026c1 Turned off image load skid marks
git-svn-id: svn://10.0.0.236/trunk@9619 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 16:13:52 +00:00
spider%netscape.com
0c2451e92b WIP: API change on OnResize for ViewManager support.
git-svn-id: svn://10.0.0.236/trunk@9618 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 16:12:03 +00:00
rods%netscape.com
5dd2f359cc XPCOM'ed the Selection and Search methods
git-svn-id: svn://10.0.0.236/trunk@9617 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 16:11:59 +00:00
ramiro%netscape.com
c9dfe90303 Move html pane to XFE_RDFChromeTreeView.
git-svn-id: svn://10.0.0.236/trunk@9615 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 14:43:13 +00:00
ramiro%netscape.com
04671136ea Unbreak MOZ_SELECTOR_BAR for the hell of it.
git-svn-id: svn://10.0.0.236/trunk@9614 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 10:56:48 +00:00
brendan%netscape.com
7b7ccadd57 - 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).


git-svn-id: svn://10.0.0.236/trunk@9611 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 10:02:12 +00:00
brendan%netscape.com
5f08bf111e Fix tempPool bloat bugs in Function by mark/release around NewTokenStream.
git-svn-id: svn://10.0.0.236/trunk@9610 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 09:50:40 +00:00
brendan%netscape.com
d06c6009ae - 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.


git-svn-id: svn://10.0.0.236/trunk@9609 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 09:27:56 +00:00
ramiro%netscape.com
d12da9f536 Many cpp's do not like "#ifdef 0" (it's illegal in strict ANSI C I suspect),
including HP-UX's ANSI C. Line 1633 of cmd/xfe/XfeWidgets/Xfe/Pane.c uses
"#ifdef 0" - it should be "#if 0" of course. HP's ANSI C refuses to compile
this file without it being fixed.
Thanks to rkl@connect.org.uk for pointing this out.


git-svn-id: svn://10.0.0.236/trunk@9608 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 09:09:00 +00:00
brendan%netscape.com
0c04e27eb1 JSMSG_NO_FORMAL duplicated DUPLICATE_FORMAL, now is reborn as BAD_FORMAL.
git-svn-id: svn://10.0.0.236/trunk@9607 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 09:04:35 +00:00
ramiro%netscape.com
f69e90bfdb Fix infinite loop on scrollbar resize from waterson@netscape.com
(Chris Waterson).
The problem with resizing on XFE has to do with the fact that the widget
resize callback is directly calling LO_RelayoutOnResize(), which causes the
scrollbars to get remapped, which causes the resize callback to be called,
which causes LO_RelayoutOnResize() to be called, which causes the scrollbars
to get remapped...you get the idea.


git-svn-id: svn://10.0.0.236/trunk@9606 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 09:03:30 +00:00
ramiro%netscape.com
9206fd904c Fix the hanging problem when invoked with -xpm (and possibly other flags) and
no include/Xm.h is found anywhere.


git-svn-id: svn://10.0.0.236/trunk@9605 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 08:34:48 +00:00
ramiro%netscape.com
71bc545ac6 This script should only do 1 thing: print a reasonable guess for a unique
host identifier.  Overriding should happen in the Makfile or wherever else
this script is invoked.


git-svn-id: svn://10.0.0.236/trunk@9604 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 08:33:49 +00:00
cls%seawood.org
3820e80eb0 Sync'd.
git-svn-id: svn://10.0.0.236/trunk@9603 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 08:15:05 +00:00
ramiro%netscape.com
ea84a1fe8e Allow the 'unique host identity' to be overriden by MOZILLA_CONFIG_HOST_IDENT.
Also make the clean target in config/mkdetect actually work.


git-svn-id: svn://10.0.0.236/trunk@9602 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 08:00:10 +00:00
brendan%netscape.com
dfee645789 Improve TABLESWITCH comment precision and add XXX about JSVERSION_IS_ECMAv2.
git-svn-id: svn://10.0.0.236/trunk@9598 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 06:35:30 +00:00
ramiro%netscape.com
623a1739b0 Add /usr/X to DEFAULT_MOTIF_SEARCH_PATH.
Thanks to tim@trr.metro.NET (Tim Rice).


git-svn-id: svn://10.0.0.236/trunk@9594 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 06:17:46 +00:00
jwz%mozilla.org
a35e03ab51 paragraph break after README (from dawn)
git-svn-id: svn://10.0.0.236/trunk@9593 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 05:14:57 +00:00
gagan%netscape.com
30fe903120 Cache_object for nu_cache.
git-svn-id: svn://10.0.0.236/trunk@9592 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 02:23:27 +00:00
gagan%netscape.com
93979e7a13 Resetting cache_objects.
git-svn-id: svn://10.0.0.236/trunk@9591 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 02:19:30 +00:00
brendan%netscape.com
4976336cd7 Renamed SRC_COMMA to SRC_PCDELTA and fixed related comments.
git-svn-id: svn://10.0.0.236/trunk@9590 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 02:16:19 +00:00
brendan%netscape.com
293dc6ae2d Fix busted version check in JSOP_TABLESWITCH.
git-svn-id: svn://10.0.0.236/trunk@9589 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 02:01:52 +00:00
cyeh%netscape.com
2722c6abf9 revert file
git-svn-id: svn://10.0.0.236/trunk@9588 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 01:37:41 +00:00
joki%netscape.com
8458f73950 Do not allow script errors to stop page parsing.
git-svn-id: svn://10.0.0.236/trunk@9587 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 01:19:52 +00:00
joki%netscape.com
c5e8af16d8 Remove duplicate functionality of nsIBrowserWindow and nsIWebShellContainer.
git-svn-id: svn://10.0.0.236/trunk@9586 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 01:19:11 +00:00
wtc%netscape.com
fb7f0ca845 Fixed dprintf as suggested by Patrick Beard (beard@netscape.com).
Now dprintf calls PR_vsnprintf instead of PR_vsmprintf, so that
dprintf does not allocate memory.  This is because PR_Assert (which
calls dprintf) can get called at interrupt time, and it is unsafe
to allocate memory at interrupt time on the Mac.


git-svn-id: svn://10.0.0.236/trunk@9585 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 01:17:41 +00:00
shaver%netscape.com
f2fe16c9ca initial import of toshok's gnomefe
git-svn-id: svn://10.0.0.236/trunk@9584 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 01:15:49 +00:00
kipp%netscape.com
d56cfbd643 Set fast-8bit-text hint on x windows
git-svn-id: svn://10.0.0.236/trunk@9583 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 01:04:29 +00:00
spider%netscape.com
79d217f984 Adding support for ViewManager into xpfc
Change painting methods to pass around the rendering context
  and dirty rect instead of gui event to be compatible with
  view api's


git-svn-id: svn://10.0.0.236/trunk@9582 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 00:55:35 +00:00
jwz%mozilla.org
1a09b34777 vivat grendel!
git-svn-id: svn://10.0.0.236/trunk@9581 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 00:52:38 +00:00
thom%netscape.com
c96ec32790 added support for DOM dll
git-svn-id: svn://10.0.0.236/trunk@9580 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 00:02:23 +00:00
thom%netscape.com
a90938b7fe added nsDOMFactory.cpp and nsHTMLTagsEnums.cpp
git-svn-id: svn://10.0.0.236/trunk@9579 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 00:01:43 +00:00
slamm%netscape.com
ff2e648658 Call show() on the builtin for SHACK.
git-svn-id: svn://10.0.0.236/trunk@9578 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 00:00:53 +00:00
slamm%netscape.com
824c376c99 Move tree widget management into RDFTreeView. Don't choke when no columns are created.
git-svn-id: svn://10.0.0.236/trunk@9577 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 00:00:42 +00:00
slamm%netscape.com
b7c785dbb9 Move tree widget management into RDFTreeView.
git-svn-id: svn://10.0.0.236/trunk@9576 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 00:00:33 +00:00
slamm%netscape.com
201747cf09 Avoid annoying warnings about _ht_pane being nil.
git-svn-id: svn://10.0.0.236/trunk@9575 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 00:00:23 +00:00
slamm%netscape.com
3b3150a851 Add default constructor call for RDFBase.
git-svn-id: svn://10.0.0.236/trunk@9574 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 00:00:20 +00:00
slamm%netscape.com
5e7c6cadbe Change relationship to RDFTreeView to 'isa' (was 'hasa'). Get SHACK going.
git-svn-id: svn://10.0.0.236/trunk@9573 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 00:00:17 +00:00
kipp%netscape.com
a629c89a47 Use a buffer to translate unichar's into XChar2b's
git-svn-id: svn://10.0.0.236/trunk@9572 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 23:52:29 +00:00
kipp%netscape.com
e12d74e626 Added a buffer used by DrawString
git-svn-id: svn://10.0.0.236/trunk@9571 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 23:52:10 +00:00
kipp%netscape.com
74460cc8e8 Whitespace tidy up
git-svn-id: svn://10.0.0.236/trunk@9570 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 23:51:54 +00:00
cyeh%netscape.com
211c01a1e7 according to scc, use do instead of system
git-svn-id: svn://10.0.0.236/trunk@9569 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 23:50:44 +00:00
spider%netscape.com
81585718f4 No longer use julian as shared library
git-svn-id: svn://10.0.0.236/trunk@9568 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 23:35:54 +00:00
pinkerton%netscape.com
82eb7aec56 sitemap/HTML area registration in docked Aurora view.
git-svn-id: svn://10.0.0.236/trunk@9567 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 23:17:21 +00:00
kipp%netscape.com
f92bc6705a Fixed unix compile bugs
git-svn-id: svn://10.0.0.236/trunk@9566 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 23:17:12 +00:00
kipp%netscape.com
1e5e004c86 Flush font cache before destroying device context to break circular links (ick)
git-svn-id: svn://10.0.0.236/trunk@9565 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:38:48 +00:00
kipp%netscape.com
9d8f9aaffa Create HTML-html-element not a root part
git-svn-id: svn://10.0.0.236/trunk@9564 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:38:17 +00:00
kipp%netscape.com
3ab02b9896 Implement HandleDOMEvent properly; clean up whitespace
git-svn-id: svn://10.0.0.236/trunk@9563 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:37:46 +00:00
kipp%netscape.com
e2c7517492 Use NS_NewBodyFrame and NS_NewHTMLFrame
git-svn-id: svn://10.0.0.236/trunk@9562 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:37:24 +00:00
kipp%netscape.com
f49ffdeb17 Renamed source files
git-svn-id: svn://10.0.0.236/trunk@9561 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:37:00 +00:00
kipp%netscape.com
4688f4a267 Removed some cruft; added NS_NewBodyFrame
git-svn-id: svn://10.0.0.236/trunk@9560 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:36:30 +00:00
kipp%netscape.com
392496f910 CHanged NewFrame method to NS_NewBodyFrame
git-svn-id: svn://10.0.0.236/trunk@9559 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:35:54 +00:00
kipp%netscape.com
429035b95e new
git-svn-id: svn://10.0.0.236/trunk@9558 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:34:40 +00:00
kipp%netscape.com
60e776c0b1 Added new atoms
git-svn-id: svn://10.0.0.236/trunk@9557 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:34:06 +00:00
kipp%netscape.com
3c90229bd1 Revised list of build files
git-svn-id: svn://10.0.0.236/trunk@9556 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:33:54 +00:00
kipp%netscape.com
e8824a34c4 Fixed bug caused during XPCOM'ing the nsIContent API
git-svn-id: svn://10.0.0.236/trunk@9555 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:32:32 +00:00
kipp%netscape.com
5e56e0d9f0 Implement revised font metrics API
git-svn-id: svn://10.0.0.236/trunk@9554 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:32:07 +00:00
kipp%netscape.com
ce87194f82 Revised API
git-svn-id: svn://10.0.0.236/trunk@9553 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:31:51 +00:00
kipp%netscape.com
8b0ea79b27 Destroy font metrics before releasing it
git-svn-id: svn://10.0.0.236/trunk@9552 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:31:28 +00:00
akkana%netscape.com
c93a7af987 Register type converters for mail compose. This makes "Send Page" work.
Approved by gagan.


git-svn-id: svn://10.0.0.236/trunk@9551 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:14:51 +00:00
rods%netscape.com
5b61252657 Changed Find to use all nsIDOMxxx classes instead of nsIContent
git-svn-id: svn://10.0.0.236/trunk@9550 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:13:29 +00:00
dcone%netscape.com
1ad612fe04 added a routine gethints() needed by the interface.
git-svn-id: svn://10.0.0.236/trunk@9549 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:13:10 +00:00
terry%netscape.com
e82ae91d3b Added 1998-09-04 version.
git-svn-id: svn://10.0.0.236/trunk@9548 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 22:06:33 +00:00
wtc%netscape.com
89a7ea308b Backed out an accidental change of the setting of OBJDIR_NAME in the
previous revision.


git-svn-id: svn://10.0.0.236/trunk@9547 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 21:45:31 +00:00
briano%netscape.com
baef3ff491 Tried to make the differences/similarities between MOZ_LITE, MOZ_MEDIUM, and MOZ_DARK more obvious.
git-svn-id: svn://10.0.0.236/trunk@9546 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 21:40:13 +00:00
cyeh%netscape.com
bacc204129 *** empty log message ***
git-svn-id: svn://10.0.0.236/trunk@9545 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 21:34:22 +00:00
sdagley%netscape.com
ad616e2ae7 Implement real version of FE_CheckConfirm
git-svn-id: svn://10.0.0.236/trunk@9544 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 21:32:03 +00:00
briano%netscape.com
11e8e272dc Minor cleanup, and changed EDITOR to MOZ_EDITOR.
git-svn-id: svn://10.0.0.236/trunk@9543 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 21:24:12 +00:00
pinkerton%netscape.com
6049d54d57 use IdenticalString instead of RelString to be more localizable.
git-svn-id: svn://10.0.0.236/trunk@9542 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 21:20:19 +00:00
pinkerton%netscape.com
1bce069dc7 don't redraw caption when it doesn't change (avoids flashing).
git-svn-id: svn://10.0.0.236/trunk@9541 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 21:12:26 +00:00
raman%netscape.com
020c0b0f7f Added libsoftupdat.a to the link line when MOZ_SMARTUPDATE is defined. Made SmartUpdate independent of Java
git-svn-id: svn://10.0.0.236/trunk@9540 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 21:06:54 +00:00
raman%netscape.com
7d0b7c66d6 Added building of autoupdt.c
git-svn-id: svn://10.0.0.236/trunk@9539 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 21:00:51 +00:00
shaver%netscape.com
91f063881e ToBoolean behaviour for all non-ECMA versions, not just 1.2
git-svn-id: svn://10.0.0.236/trunk@9538 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:59:19 +00:00
rjc%netscape.com
b67d47c22e Allow mixing/repositioning of local/remote items in the same container.
git-svn-id: svn://10.0.0.236/trunk@9537 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:55:41 +00:00
dcone%netscape.com
02fcf730c2 added files to html/content area that vidor added to windows project
git-svn-id: svn://10.0.0.236/trunk@9536 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:55:14 +00:00
pinkerton%netscape.com
85c80d8532 Since we are now weak-linked against AppearanceLib, make sure it is available and quit if it is not. We were also never initializing UEnvironment's feature set. Call RegisterAppearanceClient() since we are one (again).
git-svn-id: svn://10.0.0.236/trunk@9535 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:48:29 +00:00
pinkerton%netscape.com
d3076a4587 weak link against AppearanceLib.
git-svn-id: svn://10.0.0.236/trunk@9534 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:47:16 +00:00
pinkerton%netscape.com
2928e184e7 add a new dialog to inform users how to get AppearanceLib.
git-svn-id: svn://10.0.0.236/trunk@9533 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:47:01 +00:00
spider%netscape.com
21ba3d6cb8 Removing LIBJULIAN to use julian as standalone dll.
Adding ViewManager on a per 'container' basis.


git-svn-id: svn://10.0.0.236/trunk@9532 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:34:42 +00:00
slamm%netscape.com
136fdedb42 Pass through 'nocrap' argument from express.
git-svn-id: svn://10.0.0.236/trunk@9531 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:33:28 +00:00
ftang%netscape.com
351bb2c436 check in comment about history code may need to change later. No code change.
git-svn-id: svn://10.0.0.236/trunk@9530 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:21:23 +00:00
slamm%netscape.com
e2497544f4 Add toolbar deletion.
git-svn-id: svn://10.0.0.236/trunk@9529 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:14:23 +00:00
slamm%netscape.com
83a23b5f1c Avoid adding the wrong nodes to the toolbar
git-svn-id: svn://10.0.0.236/trunk@9528 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:14:15 +00:00
slamm%netscape.com
108d88aa73 Avoid opening nodes too soon.
git-svn-id: svn://10.0.0.236/trunk@9527 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:14:12 +00:00
slamm%netscape.com
d4508c551c more support for pane creation/deletion.
git-svn-id: svn://10.0.0.236/trunk@9526 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:14:06 +00:00
slamm%netscape.com
96eae3899d Break up the constructor into more intelligible parts. Standadize some of the variable names. Massage some ht calls.
git-svn-id: svn://10.0.0.236/trunk@9525 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:13:59 +00:00
slamm%netscape.com
4ab5d272a8 Hook up the bookmarks and history windows. Get rid of the unneeded command handing stuff.
git-svn-id: svn://10.0.0.236/trunk@9524 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:13:56 +00:00
slamm%netscape.com
ec872fb07e change some extern 'C' functions to static members of the XFE_Image
git-svn-id: svn://10.0.0.236/trunk@9523 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:13:51 +00:00
slamm%netscape.com
0fb3e85ef4 create the bookmarks pane in RDFBase.
git-svn-id: svn://10.0.0.236/trunk@9522 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:13:46 +00:00
slamm%netscape.com
99f0b0e6ed Move bookmark frame creation to NavCenterFrame.cpp
git-svn-id: svn://10.0.0.236/trunk@9521 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:13:43 +00:00
slamm%netscape.com
24a97a12ef Re-commit the 'nocrap'. This time it's not crappy.
git-svn-id: svn://10.0.0.236/trunk@9519 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 19:48:29 +00:00
slamm%netscape.com
6c5d2d1f76 Oops, not ready yet. backout last change.
git-svn-id: svn://10.0.0.236/trunk@9518 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 19:36:56 +00:00
slamm%netscape.com
e75a82953c Add a 'nocrap' flag so the top of the page has useful information (i.e. no image, no legend).
git-svn-id: svn://10.0.0.236/trunk@9517 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 19:34:51 +00:00
akkana%netscape.com
4659274e32 Remove vcards from MOZ_MAIL_COMPOSE; fix unresolved symbols
git-svn-id: svn://10.0.0.236/trunk@9516 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 19:32:10 +00:00
akkana%netscape.com
e759a9f0ec Remove vcards from MOZ_MAIL_COMPOSE
git-svn-id: svn://10.0.0.236/trunk@9515 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 19:30:41 +00:00
despotdaemon%netscape.com
0448460aa8 Pseudo-automatic update of changes made by cyeh@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9514 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 19:29:51 +00:00
beard%netscape.com
63d006d51c Lazy LiveConnect fixes.
git-svn-id: svn://10.0.0.236/trunk@9513 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 19:11:50 +00:00
buster%netscape.com
8aa191848a fixed 2 small errors in computing table widths.
1) sometimes we were adding 1 too many pixels in constrained tables
2) sometimes we were using the wrong value for the max width as an input to constrained tables


git-svn-id: svn://10.0.0.236/trunk@9512 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 19:11:14 +00:00
beard%netscape.com
34c2fcfcff Changed JavaPackage_resolve, to remove a memory leak.
git-svn-id: svn://10.0.0.236/trunk@9510 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 19:08:09 +00:00
pinkerton%netscape.com
86c01f03ff stupid RidL resources....
git-svn-id: svn://10.0.0.236/trunk@9509 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:52:00 +00:00
brendan%netscape.com
7d1f9f8984 Don't emit two SRC_HIDDENs in a row.
git-svn-id: svn://10.0.0.236/trunk@9508 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:26:37 +00:00
cyeh%netscape.com
a4b652fb6e remove CHANGES.html
git-svn-id: svn://10.0.0.236/trunk@9507 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:25:11 +00:00
norris%netscape.com
7f284fbf17 Fix bug: space was not allocated for terminal '\0' in string.
Spell "JavaScript" correctly.


git-svn-id: svn://10.0.0.236/trunk@9506 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:18:52 +00:00
pinkerton%netscape.com
0309575105 increase/decrease font size in html area. Fix column hiding bug in embedded tree.
git-svn-id: svn://10.0.0.236/trunk@9505 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:10:54 +00:00
pinkerton%netscape.com
b1ce1292cd increase/decrease font sizes in browser window.
git-svn-id: svn://10.0.0.236/trunk@9504 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:10:16 +00:00
pinkerton%netscape.com
b56da5283c use LScrollerView and LScrollBar
git-svn-id: svn://10.0.0.236/trunk@9503 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:09:16 +00:00
pinkerton%netscape.com
bb94402f82 Allow the user of the class to pass "" for the requested icon url.
git-svn-id: svn://10.0.0.236/trunk@9502 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:08:35 +00:00
pinkerton%netscape.com
f4e66ce9d5 use LScrollerView.
git-svn-id: svn://10.0.0.236/trunk@9501 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:07:59 +00:00
pinkerton%netscape.com
88a72b7e1b use LScrollerView
git-svn-id: svn://10.0.0.236/trunk@9500 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:07:48 +00:00
pinkerton%netscape.com
fbb3a02aba New HTML area in docked view.
git-svn-id: svn://10.0.0.236/trunk@9499 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:07:02 +00:00
pinkerton%netscape.com
d9d2d87c22 Use new FeatureFlags to configure properties.
git-svn-id: svn://10.0.0.236/trunk@9498 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:06:26 +00:00
pinkerton%netscape.com
8a3070e4d1 Landing of 4.5 changes to get more flexibility in how divided views are handled.
git-svn-id: svn://10.0.0.236/trunk@9497 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:05:48 +00:00
pinkerton%netscape.com
795c474aa2 Move to LScrollerView
git-svn-id: svn://10.0.0.236/trunk@9496 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:05:17 +00:00
pinkerton%netscape.com
6acb44cc6b Fixes for font scaling (increase/decrease) in browser.
git-svn-id: svn://10.0.0.236/trunk@9495 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:04:59 +00:00
pinkerton%netscape.com
44348b0ffc Using LScrollerView
git-svn-id: svn://10.0.0.236/trunk@9494 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:04:30 +00:00
pinkerton%netscape.com
ba637881d0 Adding increase/decrease font size menus.
git-svn-id: svn://10.0.0.236/trunk@9493 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:04:00 +00:00
pinkerton%netscape.com
f252f64f26 LScrollerView and HTML area in docked view. Now using includeViews more to avoid duplication.
git-svn-id: svn://10.0.0.236/trunk@9492 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:03:44 +00:00
pinkerton%netscape.com
f4175f9d93 changes for LScrollerView
git-svn-id: svn://10.0.0.236/trunk@9491 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:03:17 +00:00
pinkerton%netscape.com
c4d121b673 Removed CConfigActiveScroller and CExpandoDivider.
git-svn-id: svn://10.0.0.236/trunk@9490 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:03:02 +00:00
pinkerton%netscape.com
2305c46add move to LScrollerView for things that scroll and HTML view in docked Aurora.
git-svn-id: svn://10.0.0.236/trunk@9489 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:02:39 +00:00
pinkerton%netscape.com
cdf03c828e More AM classes and moving from LActiveScroller to LScrollerView.
git-svn-id: svn://10.0.0.236/trunk@9488 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:01:57 +00:00
dcone%netscape.com
415018ddda added a .h to the file Vidur added
git-svn-id: svn://10.0.0.236/trunk@9487 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 16:37:05 +00:00
ramiro%netscape.com
1dafb61497 Cleanup fe_getPixelFromRGB(). Move it to xfe/colors.c and rename it to
fe_GetPixelFromRGBString().


git-svn-id: svn://10.0.0.236/trunk@9486 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 14:01:20 +00:00
ramiro%netscape.com
b90a717fb1 Use real XtCallbacks instead of a hack.
git-svn-id: svn://10.0.0.236/trunk@9485 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 12:22:21 +00:00
ramiro%netscape.com
5853f77a56 Add layable children info.
git-svn-id: svn://10.0.0.236/trunk@9484 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 12:15:55 +00:00
ramiro%netscape.com
e94feb1a94 Add XfeSubResourceGetWidgetXmStringValue().
git-svn-id: svn://10.0.0.236/trunk@9483 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 11:59:26 +00:00
brendan%netscape.com
8189f39979 Oops! How did that ever work on my Win32 build?
git-svn-id: svn://10.0.0.236/trunk@9476 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 05:49:12 +00:00
brendan%netscape.com
12a9d81b7f 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.


git-svn-id: svn://10.0.0.236/trunk@9475 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 05:39:51 +00:00
cls%seawood.org
36609ca04c Changed EDITOR env to MOZ_EDITOR. Submitted by Tim Rowley <tor@cs.brown.edu>
git-svn-id: svn://10.0.0.236/trunk@9474 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 04:52:26 +00:00
cls%seawood.org
e04e2ec644 Unset NO_EDITOR when mail-compose is enabled and removed unused variables.
git-svn-id: svn://10.0.0.236/trunk@9473 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 03:57:15 +00:00
cls%seawood.org
2bfc8c424b Made sure CC is being passed down to detect scripts.
git-svn-id: svn://10.0.0.236/trunk@9472 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 03:50:42 +00:00
cls%seawood.org
5f974b4509 Removed unused variables.
git-svn-id: svn://10.0.0.236/trunk@9471 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 03:45:34 +00:00
cls%seawood.org
f175f1713d Let user set CC & CXX to propagate the c and c++ compiler throughout the main build.
git-svn-id: svn://10.0.0.236/trunk@9470 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 03:33:40 +00:00
briano%netscape.com
55d0da1124 Deleting the 'patcher' subdir from DIRS. Not used.
git-svn-id: svn://10.0.0.236/trunk@9469 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 03:12:37 +00:00
raman%netscape.com
7a4a69ccea Checking bug fixes for SmartUpdate. It is not part of the build system
git-svn-id: svn://10.0.0.236/trunk@9468 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-07 21:49:56 +00:00
kipp%netscape.com
6187415172 Allocated another IID
git-svn-id: svn://10.0.0.236/trunk@9467 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-07 19:15:41 +00:00
kipp%netscape.com
538780b53b Added GetHints to nsIRenderingContext API
git-svn-id: svn://10.0.0.236/trunk@9466 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-07 19:12:44 +00:00
shaver%netscape.com
7191ecc710 remove some unbelievably dump debugging code (I no longer randomly dump core)
git-svn-id: svn://10.0.0.236/trunk@9465 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-07 18:50:13 +00:00
sdagley%netscape.com
219619ac4d Add new Privacy prefs sub-pane under Navifator, move cookie settings there (trusted cookie checkbox and config button not implemented yet), add new prefs checkbox for saving name and password, add new prefs checkbox for warning when server has no privacy policy.
git-svn-id: svn://10.0.0.236/trunk@9464 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-07 06:04:24 +00:00
toshok%netscape.com
e978f4bd52 uhh... remove xphist.* from the build.
git-svn-id: svn://10.0.0.236/trunk@9463 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 22:03:50 +00:00
toshok%netscape.com
d511d6f7cf add xp_hist.c/h. not built.
git-svn-id: svn://10.0.0.236/trunk@9462 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 22:03:12 +00:00
toshok%netscape.com
80e54a7d35 we need lo_alignStrings when we don't have memory arenas too. not just when EDITOR is defined.
git-svn-id: svn://10.0.0.236/trunk@9461 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 21:00:43 +00:00
ramiro%netscape.com
0d56597e86 BSD/OS 3.x and 4.x no longer define ___386BSD__ (which really existed
only for backward compatibility with the old Jolitz BSD releases).
Anyways, this patch makes it compile again.
Thanks to Bert Driehuis <driehuis@playbeing.org>.


git-svn-id: svn://10.0.0.236/trunk@9460 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 19:42:08 +00:00
ramiro%netscape.com
3c6f0accb0 Convert '/' to '_' in the output of uname.
Thanks to Bert Driehuis <driehuis@playbeing.org>.


git-svn-id: svn://10.0.0.236/trunk@9459 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 19:40:05 +00:00
brendan%netscape.com
828b802387 Remove '(balance' comments, fix hanging indents, other nits.
git-svn-id: svn://10.0.0.236/trunk@9458 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 19:23:06 +00:00
brendan%netscape.com
40a84ecba5 Fix switch comments, it's not a ternary node any longer.
git-svn-id: svn://10.0.0.236/trunk@9457 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 19:19:04 +00:00
terry%netscape.com
91bc17ca27 Chouck isn't here; fix owner of LibMocha.
git-svn-id: svn://10.0.0.236/trunk@9456 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 15:03:41 +00:00
brendan%netscape.com
f85feaca03 - 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.


git-svn-id: svn://10.0.0.236/trunk@9455 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 08:07:35 +00:00
kipp%netscape.com
3862b13620 Fixed linux compiling bugs
git-svn-id: svn://10.0.0.236/trunk@9454 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 04:16:22 +00:00
kipp%netscape.com
90c7bcd9de Updated to support latest API's
git-svn-id: svn://10.0.0.236/trunk@9453 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:21:40 +00:00
kipp%netscape.com
7c684bbb7c Create text using NS_NewTextNode API
git-svn-id: svn://10.0.0.236/trunk@9452 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:21:22 +00:00
kipp%netscape.com
e9662bac89 Use nsITextContent to initialize text node
git-svn-id: svn://10.0.0.236/trunk@9451 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:20:59 +00:00
kipp%netscape.com
7c2909f337 Cleaned up some whitespace
git-svn-id: svn://10.0.0.236/trunk@9450 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:19:49 +00:00
kipp%netscape.com
652229634f Expose NS_QuoteForHTML; remove duplicate frame ctor method decls
git-svn-id: svn://10.0.0.236/trunk@9449 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:19:14 +00:00
kipp%netscape.com
5b597d4bc6 Layer on top of nsGenericDOMData for full implementation
git-svn-id: svn://10.0.0.236/trunk@9448 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:18:43 +00:00
kipp%netscape.com
d7badd5a07 Added nsTextNode
git-svn-id: svn://10.0.0.236/trunk@9447 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:18:26 +00:00
kipp%netscape.com
43f634963b Nuked old content code
git-svn-id: svn://10.0.0.236/trunk@9446 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:18:12 +00:00
kipp%netscape.com
79472d0bf2 Removed some cruft; added NS_NewTextNode
git-svn-id: svn://10.0.0.236/trunk@9445 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:17:30 +00:00
kipp%netscape.com
50a0d285a1 new
git-svn-id: svn://10.0.0.236/trunk@9444 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:16:36 +00:00
troy%netscape.com
497b238e4c Reserved an IID
git-svn-id: svn://10.0.0.236/trunk@9443 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:15:45 +00:00
kipp%netscape.com
65ab40f772 Use allocated IID; update interface to be XPCOM'd and updated the methods
git-svn-id: svn://10.0.0.236/trunk@9442 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 00:15:10 +00:00
kipp%netscape.com
53c7e57bc9 Allocated iid for nsITextContent
git-svn-id: svn://10.0.0.236/trunk@9441 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 23:28:08 +00:00
kipp%netscape.com
f9c2c2bcd2 Added a macro and normalized auto-string initialization; reordered methods slightly just to annoy rickg :-)
git-svn-id: svn://10.0.0.236/trunk@9440 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 23:21:42 +00:00
cls%seawood.org
cb74fa0564 Removed libaddr and libmsg Makefile.ins
git-svn-id: svn://10.0.0.236/trunk@9439 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 23:17:44 +00:00
cls%seawood.org
41f723e37a Added missing / to command.c target.
git-svn-id: svn://10.0.0.236/trunk@9438 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 21:35:59 +00:00
michaelp%netscape.com
947b11003e added Scrolled() method. and support to call it. fixed NS_RELEASE(rc) bug in
pres shell as reported by pierre.


git-svn-id: svn://10.0.0.236/trunk@9437 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 20:57:57 +00:00
cls%seawood.org
6d2f9e6924 Added --enable-mail-compose option.
git-svn-id: svn://10.0.0.236/trunk@9436 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 20:40:43 +00:00
kipp%netscape.com
458facb9aa Stub out fe routine so that app will link
git-svn-id: svn://10.0.0.236/trunk@9435 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 20:13:34 +00:00
kipp%netscape.com
b884486032 Added missing files to the build
git-svn-id: svn://10.0.0.236/trunk@9434 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 20:11:17 +00:00
cls%seawood.org
36caf9e033 Updated.
git-svn-id: svn://10.0.0.236/trunk@9433 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 10:25:13 +00:00
pierre%netscape.com
ac435378f8 fixed other crashes in Comparators and ref counts
git-svn-id: svn://10.0.0.236/trunk@9432 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 10:25:04 +00:00
cls%seawood.org
420116584d Fixing autoconf breakage. LO_BuiltinStruct is the same for both the OJI and non-OJI cases.
git-svn-id: svn://10.0.0.236/trunk@9431 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 10:23:12 +00:00
pierre%netscape.com
66997919f6 fixed other crash
mTimers becomes a LArray, not a LArray*


git-svn-id: svn://10.0.0.236/trunk@9430 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 09:16:58 +00:00
pierre%netscape.com
f5e5c0a6f4 fixed crash in SpendTime()
git-svn-id: svn://10.0.0.236/trunk@9429 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 08:14:15 +00:00
pierre%netscape.com
367299ddef removed explicit creation of static object ImageManagerInit because "__initialize" was added to the project
git-svn-id: svn://10.0.0.236/trunk@9428 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 08:12:08 +00:00
briano%netscape.com
368872de77 If I had been paying attention, I'd have seen that the endian.h problem had already been fixed properly in mcom_db.h.
git-svn-id: svn://10.0.0.236/trunk@9427 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 08:11:59 +00:00
pierre%netscape.com
5e61c45025 removed temporary NET_PollSockets()
added OnPaint() call


git-svn-id: svn://10.0.0.236/trunk@9426 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 08:10:15 +00:00
pierre%netscape.com
0f30acf71c ported AddMouseListener() and AddEventListener() from Windows
git-svn-id: svn://10.0.0.236/trunk@9425 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 08:05:30 +00:00
pierre%netscape.com
4757c8e0e4 added __initialize and __terminate
git-svn-id: svn://10.0.0.236/trunk@9424 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 08:03:28 +00:00
ramiro%netscape.com
4049071b62 Comment out code that breaks MOZ_SELECTOR_BAR.
git-svn-id: svn://10.0.0.236/trunk@9423 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 06:44:15 +00:00
mcafee%netscape.com
eaecbf611e newPaneFromURL() can now pass paramters to HT_PaneFromURL.
git-svn-id: svn://10.0.0.236/trunk@9422 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 06:26:28 +00:00
mcafee%netscape.com
5946788239 SHACK: builtin struct gets passed in now, and we create an XFE_BuiltinTreeView instead of an XFE_NavCenterView.
git-svn-id: svn://10.0.0.236/trunk@9421 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 06:23:54 +00:00
mcafee%netscape.com
dacbe3641b added BuiltinTreeView.cpp
git-svn-id: svn://10.0.0.236/trunk@9420 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 06:21:30 +00:00
mcafee%netscape.com
91139eba00 Initial version
git-svn-id: svn://10.0.0.236/trunk@9419 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 06:21:00 +00:00
shaver%netscape.com
f5b78d1114 add refcounting to lo_TextAttr
git-svn-id: svn://10.0.0.236/trunk@9418 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 05:08:18 +00:00
shaver%netscape.com
91df78a054 Start of infrastructure for DOM-as-one-true-attr-source. Implement
DOM_NewElement.  Defend against NULL NodeOps.


git-svn-id: svn://10.0.0.236/trunk@9417 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 04:36:38 +00:00
shaver%netscape.com
454d0090b2 Remove DOMSetAttribute event guck (now tweak on mocha thread with layout
lock held, and signal reflow via event).  Check doc_id before trusting
LO_Element *s.  Make <TD>.bgcolor mutable.  Use DOM_NewElement instead
of inline hackery.  Defend against NULL returns from DOM_HTMLPopElementByType.
Make PR_ASSERTs XP_ASSERT for sake of brave users.


git-svn-id: svn://10.0.0.236/trunk@9416 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 04:34:13 +00:00
shaver%netscape.com
ab12796192 Add COW textattrs. Clean up lo_SetColor. Make <TD>.bgcolor mutable.
Remove some debugging cruft.


git-svn-id: svn://10.0.0.236/trunk@9415 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 04:29:56 +00:00
briano%netscape.com
1b0fc032b5 Added support for OpenBSD. Thanks to Marco Hyman (marc@snafu.org) for the actual work.
git-svn-id: svn://10.0.0.236/trunk@9414 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 04:22:25 +00:00
briano%netscape.com
a90118cc0c Support OpenBSD.
git-svn-id: svn://10.0.0.236/trunk@9413 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 04:16:15 +00:00
peterl%netscape.com
c728b9f01f changed the way map attributes into is connected
git-svn-id: svn://10.0.0.236/trunk@9412 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 04:00:06 +00:00
peterl%netscape.com
c053a8b481 tweaked output of percent values
git-svn-id: svn://10.0.0.236/trunk@9411 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 03:59:44 +00:00
peterl%netscape.com
0e107c4842 added content dir to includes
git-svn-id: svn://10.0.0.236/trunk@9410 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 03:58:05 +00:00
peterl%netscape.com
07befae09b added content directory to includes
git-svn-id: svn://10.0.0.236/trunk@9409 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 03:56:08 +00:00
peterl%netscape.com
ac4e93b3e5 added content to includes
git-svn-id: svn://10.0.0.236/trunk@9408 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 03:53:32 +00:00
peterl%netscape.com
dbbef7396e added base url
git-svn-id: svn://10.0.0.236/trunk@9407 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 03:52:40 +00:00
peterl%netscape.com
df4d7336c5 removed content from style mapping api
git-svn-id: svn://10.0.0.236/trunk@9406 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 03:52:30 +00:00
peterl%netscape.com
22106bc014 removed content from style map api
git-svn-id: svn://10.0.0.236/trunk@9405 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 03:51:56 +00:00
peterl%netscape.com
cbd43bb108 added base url accessor
git-svn-id: svn://10.0.0.236/trunk@9404 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 03:51:16 +00:00
sdagley%netscape.com
db0b7bc7d0 Merging fix from 4.0x branch. It's not clear that we really want to call GetURLForReferral when the passed referer is NIL since it breaks Smart Browsing keywords and does not actually appear to be needed to fix bug #90892 (which is why it was originally added). It's also a security hole since it causes the URL of the front window to be sent as the referer even if the user manually types in a URL.
git-svn-id: svn://10.0.0.236/trunk@9403 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 02:41:28 +00:00
cyeh%netscape.com
7160be3fdb dialup begone.
git-svn-id: svn://10.0.0.236/trunk@9402 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 02:04:12 +00:00
briano%netscape.com
55df62eda3 Potential fix for at least part of bug#522. Also turned off -taso for default Mozilla builds; only needed when building the commercial product.
git-svn-id: svn://10.0.0.236/trunk@9401 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 01:54:58 +00:00
briano%netscape.com
196d4e0d9a Added MOZ_EDITOR support, and did some minor cleanup.
git-svn-id: svn://10.0.0.236/trunk@9400 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 01:10:54 +00:00
waterson%netscape.com
d0a8fe62ca Fix build bustage due to change in header file from Boolean to PRBool
on XFE_Image::isImageLoaded().


git-svn-id: svn://10.0.0.236/trunk@9399 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 00:41:05 +00:00
bjorn%netscape.com
945b841d48 Added a missing read in ArenaAllocate.
git-svn-id: svn://10.0.0.236/trunk@9398 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 00:36:14 +00:00
bjorn%netscape.com
c4ef934afe Locks with almost no global locking. This will relieve contention.
git-svn-id: svn://10.0.0.236/trunk@9397 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 00:34:03 +00:00
cyeh%netscape.com
9d076721e8 this is stupid, since we now have http://www.mozilla.org/bonsai.html
to lookup changes in the tree


git-svn-id: svn://10.0.0.236/trunk@9396 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 00:32:35 +00:00
vidur%netscape.com
62fd8be727 Fixed bustage
git-svn-id: svn://10.0.0.236/trunk@9395 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 23:55:37 +00:00
nisheeth%netscape.com
ae9593fa10 Fix for bug #313278. Some links were unclickable. Added initialization code in lo_NewElement() for all the common fields shared across layout elements. Now, all the common fields should get sane values assigned to them at creation time.
git-svn-id: svn://10.0.0.236/trunk@9394 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 23:55:04 +00:00
ftang%netscape.com
78ab560f17 Change to the new selector so Japanese bookmark in UNIX (EUC) could be import correctly. This is a special case where bookmark file is different from the locale csid.
git-svn-id: svn://10.0.0.236/trunk@9393 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 23:25:00 +00:00
ftang%netscape.com
e486040111 add INTL_OldBookmarkCsidSel to support RDF bookmark import
git-svn-id: svn://10.0.0.236/trunk@9392 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 23:22:51 +00:00
cyeh%netscape.com
f7dea89c7a remove libaddr and libmsg from MozillaSourceCommon module
git-svn-id: svn://10.0.0.236/trunk@9391 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 23:17:25 +00:00
ftang%netscape.com
8b5a2b428e add new selector for oldbookmark
git-svn-id: svn://10.0.0.236/trunk@9390 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 23:12:45 +00:00
ftang%netscape.com
944cace649 add INTL_OldBookmarkCsidSel
git-svn-id: svn://10.0.0.236/trunk@9389 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 23:12:04 +00:00
ftang%netscape.com
08f111dd0c Add bookmark import UTF8 conversion code to convert the bookmark entry into UTF8. reviewed by rjc
git-svn-id: svn://10.0.0.236/trunk@9388 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 23:11:05 +00:00
vidur%netscape.com
c849307960 New content code adjusts to getting script objects through a factory interface
git-svn-id: svn://10.0.0.236/trunk@9387 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 23:03:16 +00:00
vidur%netscape.com
c846a918fc Tag enums
git-svn-id: svn://10.0.0.236/trunk@9386 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 23:02:06 +00:00
radha%netscape.com
04645c7a9d Implement singleclick activation for grid widget
git-svn-id: svn://10.0.0.236/trunk@9385 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:56:22 +00:00
radha%netscape.com
7847db06f7 Define new resource singleClickActivation for Grid widget
git-svn-id: svn://10.0.0.236/trunk@9384 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:55:08 +00:00
radha%netscape.com
52ff426581 Set singleClick activation in docked mode
git-svn-id: svn://10.0.0.236/trunk@9383 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:54:17 +00:00
radha%netscape.com
38a53f8448 Change the RDFImage Cache to a doubly linked list instead of a array.
Add a bunch of utility functions


git-svn-id: svn://10.0.0.236/trunk@9382 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:53:34 +00:00
radha%netscape.com
e3ce6f3f30 Make the close button close the RDFChromeTreeView
git-svn-id: svn://10.0.0.236/trunk@9381 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:52:19 +00:00
radha%netscape.com
d5701c2435 Change the declaration, usage and definition of isImageLoaded().
git-svn-id: svn://10.0.0.236/trunk@9380 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:51:29 +00:00
mcafee%netscape.com
779f5ad78d Updating -ncols, -config-dir -h comments.
git-svn-id: svn://10.0.0.236/trunk@9379 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:37:20 +00:00
akkana%netscape.com
306ba98b1e Fix some unresolved symbols for MOZ_MAIL_COMPOSE build.
Won't affect default build.


git-svn-id: svn://10.0.0.236/trunk@9378 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:30:14 +00:00
akkana%netscape.com
db39744a08 Oops, type in mailto lib name
git-svn-id: svn://10.0.0.236/trunk@9377 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:28:06 +00:00
cls%seawood.org
51e2313515 Applied patch by S.J.Moller <sjm@nwc.dk> to fix problem with OPTIMIZER not being overridden by ACCFLAGS.
git-svn-id: svn://10.0.0.236/trunk@9376 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:27:13 +00:00
cls%seawood.org
51d9b43023 Swapped order of checking for X libs as Xt requires SM as of X11R6.
git-svn-id: svn://10.0.0.236/trunk@9375 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:22:26 +00:00
akkana%netscape.com
97b5c848d9 mailto doesn't need mimevcrd.c after all
git-svn-id: svn://10.0.0.236/trunk@9374 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:07:25 +00:00
spider%netscape.com
3bf64af6a4 Adding support for depend and clobber
git-svn-id: svn://10.0.0.236/trunk@9373 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:02:21 +00:00
ramiro%netscape.com
f62051d76f Add lib/mailto.
git-svn-id: svn://10.0.0.236/trunk@9372 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 22:01:45 +00:00
dcone%netscape.com
de6c30b510 fixed clipping
git-svn-id: svn://10.0.0.236/trunk@9371 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 21:12:49 +00:00
dcone%netscape.com
4bf9e70937 added checkbutton
git-svn-id: svn://10.0.0.236/trunk@9370 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 21:12:12 +00:00
dcone%netscape.com
bf0f71d504 fixed text
git-svn-id: svn://10.0.0.236/trunk@9369 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 21:10:30 +00:00
dcone%netscape.com
23c40b5c0f new mac version
git-svn-id: svn://10.0.0.236/trunk@9368 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 21:10:13 +00:00
akkana%netscape.com
93682bb687 Fix build bustage -- missed an ifdef MOZ_MAIL
git-svn-id: svn://10.0.0.236/trunk@9367 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 20:26:35 +00:00
akkana%netscape.com
fa2f9817cc Mailto landing: include mime.c ifdef MOZ_MAIL_COMPOSE.
git-svn-id: svn://10.0.0.236/trunk@9366 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 19:27:45 +00:00
terry%netscape.com
f9cd004867 Encourage people to use the secure server.
git-svn-id: svn://10.0.0.236/trunk@9365 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 19:23:40 +00:00
akkana%netscape.com
1d8ede9301 Mailto landing (ifdef MOZ_MAIL_COMPOSE).
Also, add a FULL_STATIC define to the Makefile to allow the option
of compiling a truly static binary (e.g. to test for unresolveds).


git-svn-id: svn://10.0.0.236/trunk@9364 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 19:21:43 +00:00
akkana%netscape.com
a5b7868cf3 Mailto landing. ifdef MOZ_MAIL_COMPOSE, build lib/mailto.
git-svn-id: svn://10.0.0.236/trunk@9363 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 19:08:24 +00:00
akkana%netscape.com
0b1647e004 Mailto landing (ifdef MOZ_MAIL_COMPOSE). Aproved by mwelch.
Turns off MOZILLA_30, which Jamie says is probably a bad idea;
this will be reworked in the future.


git-svn-id: svn://10.0.0.236/trunk@9362 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 19:07:08 +00:00
akkana%netscape.com
3e79243700 Mailto landing.
The mailto library is the mail compose code ripped out of the old
Messenger libmsg library, then cleaned up somewhat
(it could still use more cleaning).
This library should only be built ifdef MOZ_MAIL_COMPOSE.


git-svn-id: svn://10.0.0.236/trunk@9361 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 19:04:30 +00:00
akkana%netscape.com
498b0dfae9 Mailto landing (ifdef MOZ_MAIL_COMPOSE). Approved by ftang.
git-svn-id: svn://10.0.0.236/trunk@9360 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 19:01:58 +00:00
akkana%netscape.com
67c07c175d Mailto landing (ifdef MOZ_MAIL_COMPOSE). Approved by valeski.
git-svn-id: svn://10.0.0.236/trunk@9359 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:59:53 +00:00
despotdaemon%netscape.com
93854c4c6b Pseudo-automatic update of changes made by leaf@mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@9358 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:53:16 +00:00
akkana%netscape.com
b6a185a70e Mailto landing: grok MOZ_MAIL_COMPOSE. Approved by Briano.
git-svn-id: svn://10.0.0.236/trunk@9357 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:53:02 +00:00
valeski%netscape.com
0485308878 String insertion was broken if you wanted to insert at the begining (index '0') of a string.
git-svn-id: svn://10.0.0.236/trunk@9356 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:49:50 +00:00
shaver%netscape.com
952f75d830 fix ifdef breakage
git-svn-id: svn://10.0.0.236/trunk@9355 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:48:16 +00:00
terry%netscape.com
8f8f7701f0 Added "Viewer App" component.
git-svn-id: svn://10.0.0.236/trunk@9354 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:26:09 +00:00
dcone%netscape.com
67b43e8565 updated kipps changes
git-svn-id: svn://10.0.0.236/trunk@9353 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:01:46 +00:00
dcone%netscape.com
e3b01c7595 fixed to XP again
git-svn-id: svn://10.0.0.236/trunk@9352 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:01:00 +00:00
spider%netscape.com
e85e9626d1 adding clobber and depend support for julian
git-svn-id: svn://10.0.0.236/trunk@9351 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:00:47 +00:00
dcone%netscape.com
586c0aca07 updated to kipps changes
git-svn-id: svn://10.0.0.236/trunk@9350 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:00:21 +00:00
dcone%netscape.com
5cfb45537b updated for the latest kipp changes
git-svn-id: svn://10.0.0.236/trunk@9349 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:59:21 +00:00
dcone%netscape.com
245cbae5b2 Fixed mac build for the Kipp changes - Raptor only
git-svn-id: svn://10.0.0.236/trunk@9348 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:58:28 +00:00
dcone%netscape.com
f14fd1ee00 fixed the offscreen buffer mac things
git-svn-id: svn://10.0.0.236/trunk@9347 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:57:36 +00:00
dcone%netscape.com
40b4bf37e7 Mac Implementation
git-svn-id: svn://10.0.0.236/trunk@9346 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:57:04 +00:00
spider%netscape.com
3dc5150cef Adding depend and clobber support
git-svn-id: svn://10.0.0.236/trunk@9345 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:34:31 +00:00
spider%netscape.com
52061f624e adding clobber and depend support
git-svn-id: svn://10.0.0.236/trunk@9344 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:33:41 +00:00
spider%netscape.com
0ac14e35b2 Adding in depend and clobber support
git-svn-id: svn://10.0.0.236/trunk@9343 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:32:19 +00:00
cyeh%netscape.com
059f0b427f changes to CalendarClient module for spider
git-svn-id: svn://10.0.0.236/trunk@9342 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:30:56 +00:00
rickg%netscape.com
3615d64e55 new string improvements
git-svn-id: svn://10.0.0.236/trunk@9341 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:26:37 +00:00
despotdaemon%netscape.com
ce6c987c8c Pseudo-automatic update of changes made by cyeh@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9340 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:25:45 +00:00
spider%netscape.com
372b246ae4 remove core from garbage
git-svn-id: svn://10.0.0.236/trunk@9339 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 17:14:31 +00:00
kipp%netscape.com
d7cef5dc99 Fixed bug in handling of textarea that caused them to terminate documents
git-svn-id: svn://10.0.0.236/trunk@9338 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 16:33:40 +00:00
kipp%netscape.com
47fb9492d2 new
git-svn-id: svn://10.0.0.236/trunk@9337 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 15:57:54 +00:00
rods%netscape.com
807f7d7725 Fixed up Find to include Replace, replace will be moved to it's
own place later.


git-svn-id: svn://10.0.0.236/trunk@9336 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 15:41:20 +00:00
terry%netscape.com
c1b6656939 Give a better message, in the case that someone changes a bug that had
an invalid component or version field.  (Like, for example, all the
new NGLayout bugs.)


git-svn-id: svn://10.0.0.236/trunk@9335 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 14:30:04 +00:00
ramiro%netscape.com
3a33b18b34 context_funcs.cpp does not build on BSD/OS because no definition for
STATFS is found. This trivial patch adds it back. It sure looks like a
pasto.
Thanks to Bert Driehuis <driehuis@playbeing.org>.


git-svn-id: svn://10.0.0.236/trunk@9334 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 13:44:34 +00:00
rods%netscape.com
70889d7b15 check for mLines being being null in FrameDeletedReflow
git-svn-id: svn://10.0.0.236/trunk@9333 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 13:33:22 +00:00
shaver%netscape.com
5412c22c77 fix ancient #if DOM breakage
git-svn-id: svn://10.0.0.236/trunk@9332 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 11:51:24 +00:00
cls%seawood.org
241c21b75a Changed checks for LINUX to linux as linux is defined by the compiler and fixes autoconf breakage under libc5.
git-svn-id: svn://10.0.0.236/trunk@9331 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 10:37:27 +00:00
cls%seawood.org
6ea484d1f5 Added USE_AUTOCONF to DEFS and made building editor disabled by default.
git-svn-id: svn://10.0.0.236/trunk@9330 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 08:50:18 +00:00
despotdaemon%netscape.com
413fab33e5 Pseudo-automatic update of changes made by brendan@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9329 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 08:49:47 +00:00
briano%netscape.com
30b0eff13f Added -DHAVE_SNPRINTF, as discussed with wtc.
git-svn-id: svn://10.0.0.236/trunk@9328 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 07:59:55 +00:00
cls%seawood.org
a2db8495bc Replaced JAVA_OR_OJI surrounding ANTHRAX with USE_AUTOCONF until the proper generic combo can be decided upon.
git-svn-id: svn://10.0.0.236/trunk@9327 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 07:36:37 +00:00
cls%seawood.org
48f6f9d56b Surrounded ANTHRAX with ifdef JAVA_OR_OJI to fix non-OJI case.
git-svn-id: svn://10.0.0.236/trunk@9325 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 05:15:42 +00:00
scc%netscape.com
3fbe1524e4 moved FCInitialize() to post pref-init for FULL CIRCLE stuff
git-svn-id: svn://10.0.0.236/trunk@9324 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 03:48:27 +00:00
ftang%netscape.com
018bd46884 add INTL_ConvertLineWithoutAutoDetect and INTL_GetCharSetID to the list
git-svn-id: svn://10.0.0.236/trunk@9323 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 03:47:20 +00:00
ftang%netscape.com
6d2ba575bd add INTL_GetCharSetID from 4.5 tree
git-svn-id: svn://10.0.0.236/trunk@9322 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 03:46:31 +00:00
ftang%netscape.com
bbcb9cc63c add FE_GetCharSetID from 4.5 tree
git-svn-id: svn://10.0.0.236/trunk@9321 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 03:45:51 +00:00
ftang%netscape.com
e9214b000b Add FE_GetCharSetID from 4.5 tree
git-svn-id: svn://10.0.0.236/trunk@9320 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 03:44:52 +00:00
ftang%netscape.com
b88451df35 Add INTL_GetCharSetID from 4.5 tree
git-svn-id: svn://10.0.0.236/trunk@9319 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 03:44:23 +00:00
wtc%netscape.com
38ce488bd0 On Unix, include <sys/types.h> for 'uint'.
git-svn-id: svn://10.0.0.236/trunk@9318 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 03:43:07 +00:00
morse%netscape.com
35c87b9bc6 improve wording on trust label info
git-svn-id: svn://10.0.0.236/trunk@9317 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 03:28:26 +00:00
mcafee%netscape.com
4f7c26fb59 Getting rid of the MOZILLA_NO_FULLCIRCLE hack.
git-svn-id: svn://10.0.0.236/trunk@9316 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 03:01:54 +00:00
briano%netscape.com
2c188de044 Added -DHAVE_SNPRINTF, as discussed with wtc.
git-svn-id: svn://10.0.0.236/trunk@9315 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 02:53:32 +00:00
rickg%netscape.com
227c173869 a few small bug fixes for DTD
git-svn-id: svn://10.0.0.236/trunk@9314 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 02:52:47 +00:00
shaver%netscape.com
34ac502065 added missing #if DOM (bad!)
git-svn-id: svn://10.0.0.236/trunk@9313 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 01:16:11 +00:00
joki%netscape.com
86035599fe Fix makefile
git-svn-id: svn://10.0.0.236/trunk@9312 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 01:09:33 +00:00
kipp%netscape.com
745aee0c4c Use new wbr element
git-svn-id: svn://10.0.0.236/trunk@9311 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 01:03:20 +00:00
kipp%netscape.com
e39b3b0498 Removed old content code
git-svn-id: svn://10.0.0.236/trunk@9310 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 01:03:05 +00:00
kipp%netscape.com
b4b6440297 Added wbr
git-svn-id: svn://10.0.0.236/trunk@9309 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 01:02:54 +00:00
kipp%netscape.com
72917f8f44 Added WBR
git-svn-id: svn://10.0.0.236/trunk@9308 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 01:02:30 +00:00
kipp%netscape.com
cf434cfd08 new
git-svn-id: svn://10.0.0.236/trunk@9307 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 01:02:20 +00:00
kipp%netscape.com
507cb508d7 Create a spacer frame for spacer parts
git-svn-id: svn://10.0.0.236/trunk@9306 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:55:47 +00:00
kipp%netscape.com
bc5eaf1b20 Removed some cruft and promoted a few frame creation routines
git-svn-id: svn://10.0.0.236/trunk@9305 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:55:20 +00:00
kipp%netscape.com
0398940b8e Removed obsoelte content code
git-svn-id: svn://10.0.0.236/trunk@9304 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:54:57 +00:00
kipp%netscape.com
b1bd236e79 Added new atoms
git-svn-id: svn://10.0.0.236/trunk@9303 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:54:45 +00:00
kipp%netscape.com
f22d94b95a Create spacer element instead of obsolete spacer part
git-svn-id: svn://10.0.0.236/trunk@9302 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:52:49 +00:00
kipp%netscape.com
ce6f7d8d9f New file
git-svn-id: svn://10.0.0.236/trunk@9301 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:52:34 +00:00
norris%netscape.com
e41858a470 Previous checkin was mistaken; back it out.
git-svn-id: svn://10.0.0.236/trunk@9300 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:47:22 +00:00
joki%netscape.com
720db7820e Add New Window menu item, added window.close()
git-svn-id: svn://10.0.0.236/trunk@9299 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:47:15 +00:00
clu%netscape.com
58d40d97e6 tweaks to the encoding dialog box so the xp strings would fit.
git-svn-id: svn://10.0.0.236/trunk@9298 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:46:13 +00:00
joki%netscape.com
560e1d1ec1 Adding window.close(), fixing window.opener, window.name
git-svn-id: svn://10.0.0.236/trunk@9297 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:46:06 +00:00
norris%netscape.com
bc2d3f5307 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.


git-svn-id: svn://10.0.0.236/trunk@9296 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:45:21 +00:00
terry%netscape.com
6e086b553a Amusil now owns plugins.
git-svn-id: svn://10.0.0.236/trunk@9295 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:45:20 +00:00
spider%netscape.com
47c94bbe3c Removing no longer used mozilla/shell
git-svn-id: svn://10.0.0.236/trunk@9294 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:39:05 +00:00
pierre%netscape.com
ba1fadc3f7 fix a crash in the destructor (don't delete mFrontBuffer)
git-svn-id: svn://10.0.0.236/trunk@9293 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:33:49 +00:00
thom%netscape.com
9668f3bd42 Quick hack to get timers working (added call to tickle LPeriodical class)
git-svn-id: svn://10.0.0.236/trunk@9292 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:28:35 +00:00
clu%netscape.com
37bfaf7023 got rid of StUseCharFormattingCache for better typing performance. Also added an EDT_SetEncoding call in OBeyCommand to get the encoding dialog box up.
git-svn-id: svn://10.0.0.236/trunk@9291 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:28:05 +00:00
thom%netscape.com
a1fd716f3b Fixed crash in timer (AddItem (&something) not AddIten (something))
git-svn-id: svn://10.0.0.236/trunk@9290 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:23:30 +00:00
kipp%netscape.com
ca034ab855 Use new content class instead of the old obsolete one
git-svn-id: svn://10.0.0.236/trunk@9289 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:20:14 +00:00
kipp%netscape.com
df0413f361 Fold in some code from nsHTMLImage.cpp
git-svn-id: svn://10.0.0.236/trunk@9288 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:19:48 +00:00
kipp%netscape.com
859eb894bc Create image frames for images
git-svn-id: svn://10.0.0.236/trunk@9287 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:19:32 +00:00
kipp%netscape.com
3b3e4fc761 obsolete
git-svn-id: svn://10.0.0.236/trunk@9286 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:19:02 +00:00
kipp%netscape.com
3dd1960b2a Added decl for NS_NewImageFrame
git-svn-id: svn://10.0.0.236/trunk@9285 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:18:53 +00:00
kipp%netscape.com
9069de4eea Stop building nsBOdyPart since it's gone
git-svn-id: svn://10.0.0.236/trunk@9284 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:18:30 +00:00
kipp%netscape.com
4d72d837be Removed image content code
git-svn-id: svn://10.0.0.236/trunk@9283 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:18:18 +00:00
despotdaemon%netscape.com
70d9be09cc Pseudo-automatic update of changes made by terry@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9282 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:13:54 +00:00
terry%netscape.com
8f441bb341 Detecting the "default" partition wasn't working right.
git-svn-id: svn://10.0.0.236/trunk@9281 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:13:17 +00:00
despotdaemon%netscape.com
f59b95da76 Pseudo-automatic update of changes made by terry@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9280 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:12:04 +00:00
shaver%netscape.com
35c4e01d18 Enable setting of table cell attributes (bgcolor -- still broken), and
expose lo_SetColor to other code (libmocha's DOM stuff, specifically).


git-svn-id: svn://10.0.0.236/trunk@9279 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:08:08 +00:00
shaver%netscape.com
18f85f8dd0 Wired up DOM-node destruction after firing onUnload.
Added event guck for altering attributes (will be rewritten to do
poke-and-schedule).
Tentatively blocked out LM_ClearContextStream, which looks like dead code.


git-svn-id: svn://10.0.0.236/trunk@9278 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:05:53 +00:00
despotdaemon%netscape.com
a693e71f28 Pseudo-automatic update of changes made by terry@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9277 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 23:58:46 +00:00
terry%netscape.com
c9939d1fd3 Make the generated regexps not too general!
git-svn-id: svn://10.0.0.236/trunk@9276 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 23:57:21 +00:00
shaver%netscape.com
b36957e25d Implemented DOM_NewText.
Added stuff for node destruction, including making node_finalize module-public
for use by other node types.
Added new methods to Element (setAttribute + stubs).


git-svn-id: svn://10.0.0.236/trunk@9275 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 23:51:58 +00:00
despotdaemon%netscape.com
9e8f848074 Pseudo-automatic update of changes made by leaf@mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@9274 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 23:50:30 +00:00
despotdaemon%netscape.com
5516bd4ec8 Pseudo-automatic update of changes made by leaf@mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@9273 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 23:47:49 +00:00
despotdaemon%netscape.com
2d724b771e Pseudo-automatic update of changes made by leaf@mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@9272 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 23:45:02 +00:00
despotdaemon%netscape.com
5f5d8230ea Pseudo-automatic update of changes made by leaf@mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@9271 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 23:01:06 +00:00
despotdaemon%netscape.com
642ad8797c Pseudo-automatic update of changes made by leaf@mozilla.org.
git-svn-id: svn://10.0.0.236/trunk@9270 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 23:00:19 +00:00
rogerl%netscape.com
9f90098dfb Removed redundant #undef
git-svn-id: svn://10.0.0.236/trunk@9269 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 22:50:55 +00:00
terry%netscape.com
95101e1958 Added in NGLayout stuff. (gotta come up with a better way of tweaking
these tables!)


git-svn-id: svn://10.0.0.236/trunk@9268 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 22:50:31 +00:00
kipp%netscape.com
a20cd83e5d new
git-svn-id: svn://10.0.0.236/trunk@9267 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 22:23:41 +00:00
kipp%netscape.com
314b8f7958 Make more objects invisible
git-svn-id: svn://10.0.0.236/trunk@9266 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 22:23:22 +00:00
kipp%netscape.com
93c3e23672 Use new content objects wherever possible
git-svn-id: svn://10.0.0.236/trunk@9265 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 22:23:09 +00:00
kipp%netscape.com
76b3e558b9 tweaked element ctor methods
git-svn-id: svn://10.0.0.236/trunk@9264 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 22:22:34 +00:00
kipp%netscape.com
ab78e4bef0 Removed attribute handling since containers don't get used this way anymore
git-svn-id: svn://10.0.0.236/trunk@9263 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 22:22:16 +00:00
kipp%netscape.com
f3e136fff6 disabled most of the body part code
git-svn-id: svn://10.0.0.236/trunk@9262 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 22:21:57 +00:00
kipp%netscape.com
18a14d6bf5 Implement StringToAttribute/AttributeToString/MapAttributesInto; fix up name of embedded object
git-svn-id: svn://10.0.0.236/trunk@9261 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 22:21:32 +00:00
cyeh%netscape.com
8be3e5f2e2 final warning text
git-svn-id: svn://10.0.0.236/trunk@9260 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:47:33 +00:00
slamm%netscape.com
71379d00bf Add a form widget so that subclasses can add their own widgets.
git-svn-id: svn://10.0.0.236/trunk@9259 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:44:02 +00:00
slamm%netscape.com
33f1662279 Add ht_event debugging
git-svn-id: svn://10.0.0.236/trunk@9258 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:43:55 +00:00
akkana%netscape.com
5d8f30356a New encoding dialog API
git-svn-id: svn://10.0.0.236/trunk@9257 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:43:52 +00:00
slamm%netscape.com
60b166ac4d Let RDFBase handle deleting the pane.
git-svn-id: svn://10.0.0.236/trunk@9256 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:43:47 +00:00
slamm%netscape.com
f01c807873 Change RDFView to RDFChromeTreeView (per mcafee's request). RDFChromeTreeView inherits from RDFTreeView (adding chrome around it).
git-svn-id: svn://10.0.0.236/trunk@9255 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:43:38 +00:00
slamm%netscape.com
24d3f55a34 Make debugging fancier. Cleanup the view and destroy the
pane properly.


git-svn-id: svn://10.0.0.236/trunk@9254 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:43:29 +00:00
slamm%netscape.com
ade96f441e Replaced by RDFToolbar.
git-svn-id: svn://10.0.0.236/trunk@9253 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:43:27 +00:00
slamm%netscape.com
df22a923c4 With no selector, just pick the first view that comes
along (this will later be replace by something more useful).  Clean up
debugging. change references of RDFView to the new name, RDFChromeTreeView


git-svn-id: svn://10.0.0.236/trunk@9252 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:43:21 +00:00
slamm%netscape.com
a0b25e82f5 Replaced by RDFMenuToolbarBase.
git-svn-id: svn://10.0.0.236/trunk@9251 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:43:13 +00:00
akkana%netscape.com
953feea5d3 Fix IRIX build problem
git-svn-id: svn://10.0.0.236/trunk@9250 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:40:20 +00:00
spider%netscape.com
4785e69585 minor fix to pull calendar instead of trex
git-svn-id: svn://10.0.0.236/trunk@9249 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:37:43 +00:00
clu%netscape.com
4bfcd968a7 implmented macfe of the encoding dialog
git-svn-id: svn://10.0.0.236/trunk@9248 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:36:11 +00:00
clu%netscape.com
fd4b78e95d implement macfe of the encoding dialog
git-svn-id: svn://10.0.0.236/trunk@9247 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:34:40 +00:00
akkana%netscape.com
86867b76dd UI changes to FE_EncodingDialog to coordinate with backend and other FEs
git-svn-id: svn://10.0.0.236/trunk@9246 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:33:46 +00:00
cmanske%netscape.com
3584b2144e Added dialog for changing encoding in Composer
git-svn-id: svn://10.0.0.236/trunk@9245 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:33:18 +00:00
cmanske%netscape.com
7165b8b1c8 More work on I18N features in Composer
git-svn-id: svn://10.0.0.236/trunk@9244 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:33:05 +00:00
cmanske%netscape.com
1cdde3c8d0 Changed spelling of const and removed string not used for Change Encoding dialog
git-svn-id: svn://10.0.0.236/trunk@9243 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:33:02 +00:00
thom%netscape.com
d0bc5df348 Added comment to clarify an implementation issue (what conditions did nsITimer callback functions expect).
git-svn-id: svn://10.0.0.236/trunk@9242 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:16:41 +00:00
amusil%netscape.com
802e907ae5 MacFE code for Anthrax along with minor XP tweaks
git-svn-id: svn://10.0.0.236/trunk@9241 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:08:25 +00:00
racham%netscape.com
31019c1652 Small change in error handling
git-svn-id: svn://10.0.0.236/trunk@9240 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:03:21 +00:00
pnunn%netscape.com
a21756dedc fix for #79167. ncols. reviewed by mcafee.
Note: doc message should be changed to reflect
that ncols is added to number of system colors
for total number of colors allowed.


git-svn-id: svn://10.0.0.236/trunk@9239 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:02:31 +00:00
racham%netscape.com
976d4ef267 Changes to reflect the transition from Windows to Netscape Registry
git-svn-id: svn://10.0.0.236/trunk@9238 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 21:00:52 +00:00
cyeh%netscape.com
05b2cbb310 remove JSJ.mcp from all builds3
git-svn-id: svn://10.0.0.236/trunk@9237 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:54:33 +00:00
ftang%netscape.com
9a8a2fb72b merge one of 4.06 fix. bug 123957 and 311153. approved by mlm
git-svn-id: svn://10.0.0.236/trunk@9236 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:53:44 +00:00
cyeh%netscape.com
b355f7ea0e remove JSJDebug.o and JSJ.o files from all targets. also turn modification date caching off to fix dependencies not working
git-svn-id: svn://10.0.0.236/trunk@9235 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:53:27 +00:00
ftang%netscape.com
791b3309c8 Merge the fix 311741 from 4.5 tree.
git-svn-id: svn://10.0.0.236/trunk@9234 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:47:32 +00:00
rogerl%netscape.com
5bc4554a6e 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.


git-svn-id: svn://10.0.0.236/trunk@9233 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:44:55 +00:00
rogerl%netscape.com
1400e8fb8b New errorNumber handling
git-svn-id: svn://10.0.0.236/trunk@9232 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:35:41 +00:00
rogerl%netscape.com
f039948f09 New break-out of error message text from core engine
git-svn-id: svn://10.0.0.236/trunk@9231 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:33:32 +00:00
rogerl%netscape.com
112983b87d New errorNumber handling
git-svn-id: svn://10.0.0.236/trunk@9230 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:29:37 +00:00
spider%netscape.com
e46aa34185 fixes for new source tree
git-svn-id: svn://10.0.0.236/trunk@9229 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:20:45 +00:00
spider%netscape.com
211f718d25 Misc build fixes for migration to free source
git-svn-id: svn://10.0.0.236/trunk@9228 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:20:06 +00:00
spider%netscape.com
0d77d2ea11 Changes relative depth to gconfig
git-svn-id: svn://10.0.0.236/trunk@9227 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:14:26 +00:00
rods%netscape.com
b52be5a0e7 Fixed Find (still need to do more clean up)
git-svn-id: svn://10.0.0.236/trunk@9226 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:09:33 +00:00
spider%netscape.com
1d4b7fca78 First pass at XPFC migration to Free Source repo
git-svn-id: svn://10.0.0.236/trunk@9225 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 19:38:52 +00:00
spider%netscape.com
da31012521 First pass at XPFC migration to Free Source repo
git-svn-id: svn://10.0.0.236/trunk@9224 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 19:32:45 +00:00
despotdaemon%netscape.com
c343611bf2 Pseudo-automatic update of changes made by cata@netscape.com.
git-svn-id: svn://10.0.0.236/trunk@9223 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 19:03:22 +00:00
spider%netscape.com
e0f3d96f9a First pass at XPFC migration to Free Source repo
git-svn-id: svn://10.0.0.236/trunk@9222 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 18:59:33 +00:00
spider%netscape.com
bb3b7c2ff1 First pass at XPFC migration to Free Source repo
git-svn-id: svn://10.0.0.236/trunk@9221 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 18:47:47 +00:00
spider%netscape.com
bed2259ede First pass migrating Free Source Calendar client to mozilla repo
git-svn-id: svn://10.0.0.236/trunk@9220 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 18:23:17 +00:00
spider%netscape.com
8208dea9e2 First pass migrating Free Source Calendar client to mozilla repo
git-svn-id: svn://10.0.0.236/trunk@9219 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 18:10:14 +00:00
spider%netscape.com
94729cf355 First pass migrating Free Source Calendar client to mozilla repo
git-svn-id: svn://10.0.0.236/trunk@9218 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 18:03:30 +00:00
mcafee%netscape.com
795aee180d More solaris breakage, nsImageUnix::BuildImage() needs to return status.
git-svn-id: svn://10.0.0.236/trunk@9217 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 10:51:54 +00:00
mcafee%netscape.com
083c21c7c6 CreateSeparator() needs to return a widget, how about the one this function creates.
git-svn-id: svn://10.0.0.236/trunk@9216 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 10:48:13 +00:00
mcafee%netscape.com
c3aa33f7e2 nsToolkitErrorhandler() needs to return a value, this breaks Solaris.
git-svn-id: svn://10.0.0.236/trunk@9215 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 10:32:55 +00:00
fur%netscape.com
ae6d9a5466 Backing out check-in of these files that are causing pain with Mozilla builds,
at least until we can properly control search paths on the Mac.


git-svn-id: svn://10.0.0.236/trunk@9214 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 07:28:30 +00:00
ramiro%netscape.com
00780a8a6f Make sure MOZ_SELECTOR_BAR continues to work.
git-svn-id: svn://10.0.0.236/trunk@9213 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 06:55:12 +00:00
ramiro%netscape.com
097307a8f0 Switch the window and bookmarks menus.
git-svn-id: svn://10.0.0.236/trunk@9212 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 06:51:14 +00:00
pierre%netscape.com
5d49bab0b1 fix bug in FE_FileType()
git-svn-id: svn://10.0.0.236/trunk@9211 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 06:21:26 +00:00
pierre%netscape.com
6514a7cdee XP_FileOpen() now uses MSL like the other functions from xp_file.h, not NSPR
git-svn-id: svn://10.0.0.236/trunk@9210 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 06:21:06 +00:00
pierre%netscape.com
69cd9ff712 temporarily call NET_PollSockets() before WNE, waiting for the timers to be implemented
git-svn-id: svn://10.0.0.236/trunk@9209 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 06:20:32 +00:00
pierre%netscape.com
4682b73269 temporarily disable the scrollbars on Mac, waiting for the widgets to be implemented
git-svn-id: svn://10.0.0.236/trunk@9208 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 06:20:12 +00:00
pierre%netscape.com
62f9808ce8 set resourceBase to the magic string "usr/local/netscape/bin/"
git-svn-id: svn://10.0.0.236/trunk@9207 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 06:19:13 +00:00
buster%netscape.com
acbcec3004 fixed minColSpan to always be at least one. This helps support empty rows,
among other problems.


git-svn-id: svn://10.0.0.236/trunk@9206 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 06:15:18 +00:00
kipp%netscape.com
417b9730b3 Fixed body tags for bug reported by dbaron@netaxs.com
git-svn-id: svn://10.0.0.236/trunk@9205 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 05:07:16 +00:00
cyeh%netscape.com
9a3269d91b re-arranged search path so that :dist is searched before the local
project folder.


git-svn-id: svn://10.0.0.236/trunk@9204 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 05:01:40 +00:00
276 changed files with 29277 additions and 75540 deletions

View File

@@ -1,31 +0,0 @@
# This is a list of local files which get copied to the mozilla:dist directory
#
jsapi.h
jspubtd.h
jsarray.h
jsatom.h
jsbool.h
jscntxt.h
jscompat.h
jsconfig.h
jsdate.h
jsdbgapi.h
jsemit.h
jsfun.h
jsgc.h
jsinterp.h
jslock.h
jsmath.h
jsnum.h
jsobj.h
jsopcode.def
jsopcode.h
jsparse.h
jsprvtd.h
jspubtd.h
jsregexp.h
jsscan.h
jsscope.h
jsscript.h
jsstr.h

View File

@@ -1,236 +0,0 @@
#! gmake
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH = ../..
include $(DEPTH)/config/config.mk
ifdef MOZ_OJI
DIRS = liveconnect
endif
LIBRARY_NAME = js
ifeq ($(subst /,_,$(shell uname -s)),OS2)
ifndef XCFLAGS
OS2_IMPLIB=1
LIBRARY = js$(MOZ_BITS)$(VERSION_NUMBER).$(LIB_SUFFIX)
DEF_FILE = jsos2$(VERSION_NUMBER).def
EXTRA_LIBS = $(LIBNSPR) $(LIBNSJAVA)
else
EXTRA_LIBS = $(LIBNSPR) $(LIBNSJAVA) $(OBJDIR)/libjs.lib
endif
endif
MODULE = js
CSRCS = jsapi.c \
jsarray.c \
jsatom.c \
jsbool.c \
jscntxt.c \
jsdate.c \
jsdbgapi.c \
jsemit.c \
jsfun.c \
jsgc.c \
jsinterp.c \
jsmath.c \
jsnum.c \
jsobj.c \
jsopcode.c \
jsparse.c \
jsregexp.c \
jsscan.c \
jsscope.c \
jsscript.c \
jsstr.c \
jslock.c \
jsxdrapi.c \
prmjtime.c \
$(NULL)
EXPORTS = jsapi.h \
jsarray.h \
jsatom.h \
jsbool.h \
jscntxt.h \
jscompat.h \
jsconfig.h \
jsdate.h \
jsdbgapi.h \
jsemit.h \
jsfun.h \
jsgc.h \
jsinterp.h \
jslock.h \
jsmath.h \
jsnum.h \
jsobj.h \
jsopcode.def \
jsopcode.h \
jsparse.h \
jsprvtd.h \
jspubtd.h \
jsregexp.h \
jsscan.h \
jsscope.h \
jsscript.h \
jsstr.h \
jsxdrapi.h \
$(NULL)
# when using gcc the assembly is inlined in the C-file (see jslock.c)
ifdef NS_USE_NATIVE
ASFILES = $(wildcard *_$(OS_ARCH).s)
endif
JS_SAFE_ARENA = 1
ifdef JS_SAFE_ARENA
DEFINES += -DJS_USE_SAFE_ARENA
CSRCS += prarena.c
endif
include $(DEPTH)/config/rules.mk
ifndef BUILD_OPT
MOCHAFILE = 1
endif
ifdef JSFILE
DEFINES += -DJSFILE
endif
ifdef JS_THREADSAFE
DEFINES += -DJS_THREADSAFE
endif
ifdef JS_NO_THIN_LOCKS
DEFINES += -DJS_USE_ONLY_NSPR_LOCKS
endif
ifdef JS_VERSION
DEFINES += -DJS_VERSION=$(JS_VERSION)
endif
ifeq ($(CPU_ARCH),sparc)
ifndef JS_NO_ULTRA
ULTRA_OPTIONS := -xarch=v8plus,-DULTRA_SPARC
ULTRA_OPTIONSCC := -DULTRA_SPARC
else
ULTRA_OPTIONS := -xarch=v8
ULTRA_OPTIONSCC :=
endif
ifeq ($(shell uname -m),sun4u)
ASFLAGS += -Wa,$(ULTRA_OPTIONS),-P,-L,-D_ASM,-D__STDC__=0 $(ULTRA_OPTIONSCC)
else
ASFLAGS += -Wa,-xarch=v8,-P,-L,-D_ASM,-D__STDC__=0
endif
endif # sparc
INCLUDES += -I.
ifdef NSPR20
INCLUDES += -I$(DIST)/include/nspr20/pr
else
INCLUDES += -I$(XPDIST)/public/nspr
endif
ifndef NSBUILDROOT
JSJAVA_STUBHEADERS = -I$(DEPTH)/sun-java/include/_gen \
-I$(DEPTH)/sun-java/netscape/javascript/_jri \
-I$(DEPTH)/sun-java/netscape/security/_jri
else
JSJAVA_STUBHEADERS = -I$(JRI_GEN_DIR) -I$(JDK_GEN_DIR)
endif
JSJAVA_CFLAGS = -I$(DEPTH)/sun-java/md-include \
-I$(DEPTH)/sun-java/include \
$(JSJAVA_STUBHEADERS)
# LIBNSPR includes unneeded libmsgc21.a, but abstracts nspr version,
# etc. nicely.
LDFLAGS = $(LIBNSPR) -lm
ifeq ($(OS_ARCH), OSF1)
LDFLAGS += -lc_r
endif
ifeq ($(OS_ARCH), SunOS)
LDFLAGS += -lposix4 -ldl -lnsl -lsocket
endif
ifeq ($(OS_ARCH), Linux)
LDFLAGS += -ldl
endif
# this requires clobbering and recompiling with XCFLAGS=-DJSFILE
js:
$(MAKE) clobber
$(MAKE) XCFLAGS=-DJSFILE $(OBJDIR)/js$(BIN_SUFFIX)
.PHONY: js$(BIN_SUFFIX)
ifneq ($(OS_ARCH),OS2)
$(OBJDIR)/js$(BIN_SUFFIX): $(OBJDIR)/js.o $(LIBRARY)
@$(MAKE_OBJDIR)
$(CC) -o $@ $(OBJDIR)/js.o $(LIBRARY) $(LDFLAGS)
else
OS_CFLAGS += -tm-
$(OBJDIR)/js$(BIN_SUFFIX): $(OBJDIR)/js.o $(LIBRARY)
@$(MAKE_OBJDIR)
$(LINK_EXE) -OUT:$@ $(OBJDIR)/js.o $(LIBRARIES) $(EXTRA_LIBS)
endif
# hardwire dependencies on jsopcode.def
jsopcode.h jsopcode.c: jsopcode.def
# this section was put in the merged by danda into the
# JAVA_*_MERGE section and normally would have
# been removed. However it looks like it shouldn't have
# been put there in the first place, so we're leaving it
# here until danda can confirm (we don't have OS/2 machines
# to build on) - hshaw/sudu
#
ifeq ($(OS_ARCH),OS2)
$(OBJDIR)/js.o: js.c
@$(MAKE_OBJDIR)
$(CC) -Fo$@ -c $(CFLAGS) $(JSJAVA_CFLAGS) js.c
endif
refdiff:
@for f in `cat commfiles`; do \
t=/tmp/refdiff.$$$$; \
trap 'rm -f $$t' 0 1 2 15; \
sed -f prconv.sed ../ref/$$f > $$t; \
cmp -s $$t $$f; \
if test $$? -ne 0; then \
echo "=== $$f"; \
diff $$f $$t; \
fi; \
rm -f $$t; \
done
refconv:
@for f in `cat commfiles`; do \
echo "=== $$f"; \
sed -f prconv.sed ../ref/$$f > $$f; \
done
.PHONY: refdiff refconv

View File

@@ -1,241 +0,0 @@
#! gmake
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH = ../..
topsrcdir = @top_srcdir@
VPATH = @srcdir@
srcdir = @srcdir@
include $(DEPTH)/config/autoconf.mk
ifdef MOZ_OJI
DIRS = liveconnect
endif
LIBRARY_NAME = js
ifeq ($(subst /,_,$(shell uname -s)),OS2)
ifndef XCFLAGS
OS2_IMPLIB=1
LIBRARY = js$(MOZ_BITS)$(VERSION_NUMBER).$(LIB_SUFFIX)
DEF_FILE = jsos2$(VERSION_NUMBER).def
EXTRA_LIBS = $(LIBNSPR) $(LIBNSJAVA)
else
EXTRA_LIBS = $(LIBNSPR) $(LIBNSJAVA) $(OBJDIR)/libjs.lib
endif
endif
MODULE = js
CSRCS = jsapi.c \
jsarray.c \
jsatom.c \
jsbool.c \
jscntxt.c \
jsdate.c \
jsdbgapi.c \
jsemit.c \
jsfun.c \
jsgc.c \
jsinterp.c \
jsmath.c \
jsnum.c \
jsobj.c \
jsopcode.c \
jsparse.c \
jsregexp.c \
jsscan.c \
jsscope.c \
jsscript.c \
jsstr.c \
jslock.c \
jsxdrapi.c \
prmjtime.c \
$(NULL)
EXPORTS = jsapi.h \
jsarray.h \
jsatom.h \
jsbool.h \
jscntxt.h \
jscompat.h \
jsconfig.h \
jsdate.h \
jsdbgapi.h \
jsemit.h \
jsfun.h \
jsgc.h \
jsinterp.h \
jslock.h \
jsmath.h \
jsnum.h \
jsobj.h \
jsopcode.def \
jsopcode.h \
jsparse.h \
jsprvtd.h \
jspubtd.h \
jsregexp.h \
jsscan.h \
jsscope.h \
jsscript.h \
jsstr.h \
jsxdrapi.h \
$(NULL)
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
# when using gcc the assembly is inlined in the C-file (see jslock.c)
ifdef NS_USE_NATIVE
ASFILES = $(wildcard $(srcdir)/*_$(OS_ARCH).s)
endif
JS_SAFE_ARENA = 1
ifdef JS_SAFE_ARENA
DEFINES += -DJS_USE_SAFE_ARENA
CSRCS += prarena.c
endif
include $(topsrcdir)/config/rules.mk
ifndef BUILD_OPT
MOCHAFILE = 1
endif
ifdef JSFILE
DEFINES += -DJSFILE
endif
ifdef JS_THREADSAFE
DEFINES += -DJS_THREADSAFE
endif
ifdef JS_NO_THIN_LOCKS
DEFINES += -DJS_USE_ONLY_NSPR_LOCKS
endif
ifdef JS_VERSION
DEFINES += -DJS_VERSION=$(JS_VERSION)
endif
ifeq ($(CPU_ARCH),sparc)
ifndef JS_NO_ULTRA
ULTRA_OPTIONS := -xarch=v8plus,-DULTRA_SPARC
ULTRA_OPTIONSCC := -DULTRA_SPARC
else
ULTRA_OPTIONS := -xarch=v8
ULTRA_OPTIONSCC :=
endif
ifeq ($(shell uname -m),sun4u)
ASFLAGS += -Wa,$(ULTRA_OPTIONS),-P,-L,-D_ASM,-D__STDC__=0 $(ULTRA_OPTIONSCC)
else
ASFLAGS += -Wa,-xarch=v8,-P,-L,-D_ASM,-D__STDC__=0
endif
endif # sparc
INCLUDES += -I$(srcdir)
ifdef NSPR20
INCLUDES += -I$(DIST)/include/nspr20/pr
else
INCLUDES += -I$(XPDIST)/public/nspr
endif
ifndef NSBUILDROOT
JSJAVA_STUBHEADERS = -I$(topsrcdir)/sun-java/include/_gen \
-I$(topsrcdir)/sun-java/netscape/javascript/_jri \
-I$(topsrcdir)/sun-java/netscape/security/_jri
else
JSJAVA_STUBHEADERS = -I$(JRI_GEN_DIR) -I$(JDK_GEN_DIR)
endif
JSJAVA_CFLAGS = -I$(topsrcdir)/sun-java/md-include \
-I$(topsrcdir)/sun-java/include \
$(JSJAVA_STUBHEADERS)
# LIBNSPR includes unneeded libmsgc21.a, but abstracts nspr version,
# etc. nicely.
LDFLAGS = $(LIBNSPR) -lm
ifeq ($(OS_ARCH), OSF1)
LDFLAGS += -lc_r
endif
ifeq ($(OS_ARCH), SunOS)
LDFLAGS += -lposix4 -ldl -lnsl -lsocket
endif
ifeq ($(OS_ARCH), Linux)
LDFLAGS += -ldl
endif
# this requires clobbering and recompiling with XCFLAGS=-DJSFILE
js:
$(MAKE) clobber
$(MAKE) XCFLAGS=-DJSFILE $(OBJDIR)/js$(BIN_SUFFIX)
.PHONY: js$(BIN_SUFFIX)
ifneq ($(OS_ARCH),OS2)
$(OBJDIR)/js$(BIN_SUFFIX): $(OBJDIR)/js.o $(LIBRARY)
@$(MAKE_OBJDIR)
$(CC) -o $@ $(OBJDIR)/js.o $(LIBRARY) $(LDFLAGS)
else
OS_CFLAGS += -tm-
$(OBJDIR)/js$(BIN_SUFFIX): $(OBJDIR)/js.o $(LIBRARY)
@$(MAKE_OBJDIR)
$(LINK_EXE) -OUT:$@ $(OBJDIR)/js.o $(LIBRARIES) $(EXTRA_LIBS)
endif
# hardwire dependencies on jsopcode.def
jsopcode.h jsopcode.c: jsopcode.def
# this section was put in the merged by danda into the
# JAVA_*_MERGE section and normally would have
# been removed. However it looks like it shouldn't have
# been put there in the first place, so we're leaving it
# here until danda can confirm (we don't have OS/2 machines
# to build on) - hshaw/sudu
#
ifeq ($(OS_ARCH),OS2)
$(OBJDIR)/js.o: js.c
@$(MAKE_OBJDIR)
$(CC) -Fo$@ -c $(CFLAGS) $(JSJAVA_CFLAGS) js.c
endif
refdiff:
@for f in `cat commfiles`; do \
t=/tmp/refdiff.$$$$; \
trap 'rm -f $$t' 0 1 2 15; \
sed -f prconv.sed ../ref/$$f > $$t; \
cmp -s $$t $$f; \
if test $$? -ne 0; then \
echo "=== $$f"; \
diff $$f $$t; \
fi; \
rm -f $$t; \
done
refconv:
@for f in `cat commfiles`; do \
echo "=== $$f"; \
sed -f prconv.sed ../ref/$$f > $$f; \
done
.PHONY: refdiff refconv

View File

@@ -1,316 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
# JSRef GNUmake makefile.
#
# Set os+release dependent make variables
OS_ARCH := $(subst /,_,$(shell uname -s))
# Attempt to differentiate between SunOS 5.4 and x86 5.4
OS_CPUARCH := $(shell uname -m)
ifeq ($(OS_CPUARCH),i86pc)
OS_RELEASE := $(shell uname -r)_$(OS_CPUARCH)
else
ifeq ($(OS_ARCH),AIX)
OS_RELEASE := $(shell uname -v).$(shell uname -r)
else
OS_RELEASE := $(shell uname -r)
endif
endif
# Virtually all Linux versions are identical.
# Any distinctions are handled in linux.h
ifeq ($(OS_ARCH),Linux)
OS_CONFIG := Linux_All
else
ifeq ($(OS_ARCH),dgux)
OS_CONFIG := dgux
else
OS_CONFIG := $(OS_ARCH)$(OS_OBJTYPE)$(OS_RELEASE)
endif
endif
ASFLAGS =
DEFINES =
#NS_USE_NATIVE = 1
include config/$(OS_CONFIG).mk
ifdef BUILD_OPT
OPTIMIZER += -O
DEFINES += -UDEBUG -DNDEBUG -UDEBUG_$(shell whoami)
OBJDIR_TAG = _OPT
else
ifdef USE_MSVC
OPTIMIZER = -Zi
else
OPTIMIZER = -g
endif
DEFINES += -DDEBUG -DDEBUG_$(shell whoami)
OBJDIR_TAG = _DBG
endif
#DEFINES += -DJS_THREADSAFE
ifdef JS_NO_THIN_LOCKS
DEFINES += -DJS_USE_ONLY_NSPR_LOCKS
endif
# Name of the binary code directories
OBJDIR = $(OS_CONFIG)$(OBJDIR_TAG).OBJ
VPATH = $(OBJDIR)
# Automatic make dependencies file
DEPENDENCIES = $(OBJDIR)/.md
define MAKE_OBJDIR
if test ! -d $(@D); then rm -rf $(@D); mkdir $(@D); fi
endef
# Look in OBJDIR to find prcpucfg.h
INCLUDES = -I$(OBJDIR)
#
# XCFLAGS may be set in the environment or on the gmake command line
#
CFLAGS = $(OPTIMIZER) $(OS_CFLAGS) $(DEFINES) $(INCLUDES) \
-DJSFILE $(XCFLAGS)
LDFLAGS = -lm $(XLDFLAGS)
#
# Ask perl what flags it was built with, so we can build js with similar flags
# and link properly. Viva gmake.
#
ifdef PERLCONNECT
DEFINES += -DPERLCONNECT
PERLCFLAGS := $(shell perl -MExtUtils::Embed -e ccopts)
PERLLDFLAGS := $(shell perl -MExtUtils::Embed -e ldopts)
CFLAGS += $(PERLCFLAGS)
LDFLAGS += $(PERLLDFLAGS)
endif
# For purify
PURE_CFLAGS = -DXP_UNIX $(OPTIMIZER) $(PURE_OS_CFLAGS) $(DEFINES) \
$(INCLUDES) $(XCFLAGS)
#
# JS file lists
#
JS_HFILES = \
jsarray.h \
jsatom.h \
jsbool.h \
jsconfig.h \
jscntxt.h \
jsdate.h \
jsemit.h \
jsexn.h \
jsfun.h \
jsgc.h \
jsinterp.h \
jslock.h \
jsmath.h \
jsnum.h \
jsobj.h \
jsopcode.h \
jsparse.h \
jsarena.h \
jsclist.h \
jsdtoa.h \
jshash.h \
jslong.h \
jsmacos.h \
jsosdep.h \
jspcos.h \
jsprintf.h \
jstime.h \
jstypes.h \
jsprvtd.h \
jspubtd.h \
jsregexp.h \
jsscan.h \
jsscope.h \
jsscript.h \
jsstr.h \
jsxdrapi.h \
$(NULL)
API_HFILES = \
jsapi.h \
jsdbgapi.h \
$(NULL)
HFILES = $(JS_HFILES) $(API_HFILES)
JS_CFILES = \
jsapi.c \
jsarray.c \
jsatom.c \
jsbool.c \
jscntxt.c \
jsdate.c \
jsdbgapi.c \
jsemit.c \
jsexn.c \
jsfun.c \
jsgc.c \
jsinterp.c \
jslock.c \
jsmath.c \
jsnum.c \
jsobj.c \
jsopcode.c \
jsparse.c \
jsarena.c \
jsdtoa.c \
jshash.c \
jslog2.c \
jslong.c \
jsprf.c \
jsregexp.c \
jsscan.c \
jsscope.c \
jsscript.c \
jsstr.c \
jsutil.c \
jsxdrapi.c \
prmjtime.c \
$(NULL)
ifdef PERLCONNECT
JS_CFILES += jsperl.c
endif
LIB_CFILES = $(JS_CFILES)
LIB_ASFILES := $(wildcard *_$(OS_ARCH).s)
PROG_CFILES = js.c
ifdef USE_MSVC
LIB_OBJS = $(addprefix $(OBJDIR)/, $(LIB_CFILES:.c=.obj))
PROG_OBJS = $(addprefix $(OBJDIR)/, $(PROG_CFILES:.c=.obj))
else
LIB_OBJS = $(addprefix $(OBJDIR)/, $(LIB_CFILES:.c=.o))
LIB_OBJS += $(addprefix $(OBJDIR)/, $(LIB_ASFILES:.s=.o))
PROG_OBJS = $(addprefix $(OBJDIR)/, $(PROG_CFILES:.c=.o))
endif
CFILES = $(LIB_CFILES) $(PROG_CFILES)
OBJS = $(LIB_OBJS) $(PROG_OBJS)
ifdef USE_MSVC
LIBRARY = $(OBJDIR)/js32.dll
PROGRAM = $(OBJDIR)/js
else
LIBRARY = $(OBJDIR)/libjs.a
PROGRAM = $(OBJDIR)/js
endif
ifdef USE_MSVC
TARGETS = $(LIBRARY) # $(PROGRAM) not supported for MSVC yet
else
TARGETS = $(LIBRARY) $(PROGRAM)
endif
all: $(TARGETS)
clean:
rm -rf $(OBJS)
clobber:
rm -rf $(OBJS) $(TARGETS) $(DEPENDENCIES)
depend:
gcc -MM $(CFLAGS) $(JS_CFILES)
$(OBJDIR)/%: %.c
@$(MAKE_OBJDIR)
$(CC) -o $@ $(CFLAGS) $*.c $(LDFLAGS)
$(OBJDIR)/%.o: %.c
@$(MAKE_OBJDIR)
$(CC) -o $@ -c $(CFLAGS) $*.c
$(OBJDIR)/%.o: %.s
@$(MAKE_OBJDIR)
$(AS) -o $@ $(ASFLAGS) $*.s
# windows only
$(OBJDIR)/%.obj: %.c
@$(MAKE_OBJDIR)
$(CC) -Fo$(OBJDIR)/ -c $(CFLAGS) $*.c
ifeq ($(OS_ARCH),OS2)
$(LIBRARY): $(LIB_OBJS)
$(AR) $@ $? $(AR_OS2_SUFFIX)
$(RANLIB) $@
else
ifdef USE_MSVC
$(LIBRARY): $(LIB_OBJS)
link.exe $(LIB_LINK_FLAGS) /base:0x61000000 \
/out:"$@" /pdb:"$(OBJDIR)/js32.pdb" /implib:"$(OBJDIR)/js32.lib" $?
else
$(LIBRARY): $(LIB_OBJS)
$(AR) rv $@ $?
$(RANLIB) $@
endif
endif
#NSPR_LIBRARY = ../../dist/$(OBJDIR)/lib/libnspr21.so
NSPR_LIBRARY =
$(PROGRAM): $(PROG_OBJS) $(LIBRARY)
$(CC) -o $@ $(CFLAGS) $(PROG_OBJS) $(LIBRARY) $(NSPR_LIBRARY) $(LDFLAGS)
$(PROGRAM).pure: $(PROG_OBJS) $(LIBRARY)
purify $(PUREFLAGS) \
$(CC) -o $@ $(PURE_OS_CFLAGS) $(PROG_OBJS) $(LIBRARY) $(LDFLAGS)
$(HFILES) $(CFILES): $(OBJDIR)/jscpucfg.h
ifdef PREBUILT_CPUCFG
$(OBJDIR)/jscpucfg.h: jscpucfg.h
cp jscpucfg.h $(OBJDIR)
else
$(OBJDIR)/jscpucfg.h: $(OBJDIR)/jscpucfg
rm -f $@
$(OBJDIR)/jscpucfg > $@
$(OBJDIR)/jscpucfg: $(OBJDIR)/jscpucfg.o
$(CC) -o $@ $(OBJDIR)/jscpucfg.o
endif
#
# Hardwire dependencies on jsopcode.tbl
#
jsopcode.h jsopcode.c: jsopcode.tbl
-include $(DEPENDENCIES)
TARNAME = jsref.tar
TARFILES = files `cat files`
tar:
tar cvf $(TARNAME) $(TARFILES)
gzip $(TARNAME)
SUFFIXES: .i
%.i: %.c
$(CC) -C -E $(CFLAGS) $< > $*.i

View File

@@ -1,17 +0,0 @@
The js/ref directory contains standalone ANSI-C source for the Netscape
JavaScript Reference implementation, JSRef, which was licensed to over 180
companies as part of Netscape ONE, starting in fall 1996. Now, JSRef is
available under NPL from http://www.mozilla.org.
The js/src directory contains source files listed in the file "commfiles",
that are derived via prconv.sed from counterparts in the js/ref directory.
It also contains files such as jscompat.h that are not needed in js/ref.
The Makefile in js/src has refconv and refdiff targets to help keep js/ref
and js/src in synch.
If you think you need to change a file listed in commfiles here, please
make the change in js/ref first and then use prconv.sed or gmake refconv to
get it into js/src. If you have trouble, please let us know by mailing the
JS owner and peers listed in http://www.mozilla.org/owners.html#JavaScript.
Brendan Eich (brendan@mozilla.org), 15-May-98

View File

@@ -1,100 +0,0 @@
#! gmake
#
# Since everyone seems to need to have their own build configuration
# system these days, this is yet another makefile to build JavaScript.
# This makefile conforms to the NSPR20 build rules. If you have built
# NSPR20 this will build JS and stick the lib and bin files over in
# the dist area created by NSPR (which is different from the dist
# expected by the client and also the dist expected by LiveWire, but
# don't get me started).
#
# I don't currently know enough about what sort of JS-engine the Actra
# projects are going to expect so I don't know if we need to add
# to CFLAGS for -DJS_THREADSAFE or -DJSFILE
#
MOD_DEPTH = ../../nspr20
include $(MOD_DEPTH)/config/config.mk
INCLUDES = -I$(DIST)/include
CFLAGS += -DNSPR20
CSRCS = prmjtime.c \
jsapi.c \
jsarray.c \
jsatom.c \
jsbool.c \
jscntxt.c \
jsdate.c \
jsdbgapi.c \
jsemit.c \
jsfun.c \
jsgc.c \
jsinterp.c \
jsmath.c \
jsnum.c \
jsobj.c \
jsopcode.c \
jsparse.c \
jsregexp.c \
jsscan.c \
jsscope.c \
jsscript.c \
jsstr.c \
jslock.c \
$(NULL)
HEADERS = jsapi.h \
jsarray.h \
jsatom.h \
jsbool.h \
jscntxt.h \
jscompat.h \
jsconfig.h \
jsdate.h \
jsdbgapi.h \
jsemit.h \
jsfun.h \
jsgc.h \
jsinterp.h \
jslock.h \
jsmath.h \
jsnum.h \
jsobj.h \
jsopcode.def \
jsopcode.h \
jsparse.h \
jsprvtd.h \
jspubtd.h \
jsregexp.h \
jsscan.h \
jsscope.h \
jsscript.h \
jsstr.h \
$(NULL)
ifeq ($(OS_ARCH), WINNT)
EXTRA_LIBS += $(DIST)/lib/libnspr$(MOD_VERSION).lib
EXTRA_LIBS += $(DIST)/lib/libplds$(MOD_VERSION).lib
else
EXTRA_LIBS += -L$(DIST)/lib -lnspr$(MOD_VERSION) -lnplds$(MOD_VERSION)
endif
LIBRARY_NAME = js
LIBRARY_VERSION = $(MOD_VERSION)
RELEASE_HEADERS = $(HEADERS)
RELEASE_HEADERS_DEST = $(RELEASE_INCLUDE_DIR)
RELEASE_LIBS = $(TARGETS)
include $(MOD_DEPTH)/config/rules.mk
export:: $(TARGETS)
$(INSTALL) -m 444 $(HEADERS) $(MOD_DEPTH)/../dist/public/$(LIBRARY_NAME)
$(INSTALL) -m 444 $(TARGETS) $(DIST)/lib
$(INSTALL) -m 444 $(SHARED_LIBRARY) $(DIST)/bin
install:: export

View File

@@ -1,51 +0,0 @@
js.c
jsapi.c
jsapi.h
jsarray.c
jsarray.h
jsatom.c
jsatom.h
jsbool.c
jsbool.h
jscntxt.c
jscntxt.h
jsconfig.h
jsdate.c
jsdate.h
jsdbgapi.c
jsdbgapi.h
jsemit.c
jsemit.h
jsfun.c
jsfun.h
jsgc.c
jsgc.h
jsinterp.c
jsinterp.h
jslock.h
jslock.c
jsmath.c
jsmath.h
jsnum.c
jsnum.h
jsobj.c
jsobj.h
jsopcode.c
jsopcode.def
jsopcode.h
jsparse.c
jsparse.h
jsprvtd.h
jspubtd.h
jsregexp.c
jsregexp.h
jsscan.c
jsscan.h
jsscope.c
jsscope.h
jsscript.c
jsscript.h
jsstr.c
jsstr.h
jsxdrapi.h
jsxdrapi.c

View File

@@ -1,37 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for AIX
#
CC = xlC_r
CCC = xlC_r
RANLIB = ranlib
#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<
ARCH := aix
CPU_ARCH = rs6000
GFX_ARCH = x
INLINES = js_compare_and_swap:js_fast_lock1:js_fast_unlock1:js_lock_get_slot:js_lock_set_slot:js_lock_scope1
OS_CFLAGS = -qarch=com -qinline+$(INLINES) -DXP_UNIX -DAIX -DAIXV3 -DSYSV
OS_LIBS = -lbsd -lsvld -lm
#-lpthreads -lc_r

View File

@@ -1,48 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for HPUX
#
CC = gcc -Wall -Wno-format
CCC = g++ -Wall -Wno-format
RANLIB = echo
#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<
CPU_ARCH = hppa
GFX_ARCH = x
OS_CFLAGS = -DXP_UNIX -DHPUX -DSYSV -D_SVID_GETTOD
OS_LIBS = -ldld
ifeq ($(OS_RELEASE),B.10)
PLATFORM_FLAGS += -DHPUX10 -Dhpux10
PORT_FLAGS += -DRW_NO_OVERLOAD_SCHAR -DHAVE_MODEL_H
ifeq ($(OS_VERSION),.10)
PLATFORM_FLAGS += -DHPUX10_10
endif
ifeq ($(OS_VERSION),.20)
PLATFORM_FLAGS += -DHPUX10_20
endif
ifeq ($(OS_VERSION),.30)
PLATFORM_FLAGS += -DHPUX10_30
endif
endif

View File

@@ -1,48 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for HPUX
#
CC = gcc -Wall -Wno-format
CCC = g++ -Wall -Wno-format
RANLIB = echo
#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<
CPU_ARCH = hppa
GFX_ARCH = x
OS_CFLAGS = -DXP_UNIX -DHPUX -DSYSV -D_SVID_GETTOD
OS_LIBS = -ldld
ifeq ($(OS_RELEASE),B.10)
PLATFORM_FLAGS += -DHPUX10 -Dhpux10
PORT_FLAGS += -DRW_NO_OVERLOAD_SCHAR -DHAVE_MODEL_H
ifeq ($(OS_VERSION),.10)
PLATFORM_FLAGS += -DHPUX10_10
endif
ifeq ($(OS_VERSION),.20)
PLATFORM_FLAGS += -DHPUX10_20
endif
ifeq ($(OS_VERSION),.30)
PLATFORM_FLAGS += -DHPUX10_30
endif
endif

View File

@@ -1,58 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for IRIX
#
CPU_ARCH = mips
GFX_ARCH = x
RANLIB = /bin/true
#NS_USE_GCC = 1
ifdef NS_USE_GCC
CC = gcc
CCC = g++
AS = $(CC) -x assembler-with-cpp
ODD_CFLAGS = -Wall -Wno-format
ifdef BUILD_OPT
OPTIMIZER = -O6
endif
else
ifeq ($(OS_RELEASE),6.2)
CC = cc -32 -DIRIX6_2
endif
ifeq ($(OS_RELEASE),6.3)
CC = cc -32 -DIRIX6_3
endif
CCC = CC
ODD_CFLAGS = -fullwarn -xansi
ifdef BUILD_OPT
OPTIMIZER += -Olimit 4000
endif
endif
# For purify
HAVE_PURIFY = 1
PURE_OS_CFLAGS = $(ODD_CFLAGS) -DXP_UNIX -DSVR4 -DSW_THREADS -DIRIX
OS_CFLAGS = $(PURE_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
BSDECHO = echo
MKSHLIB = $(LD) -shared

View File

@@ -1,22 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for IRIX6.3
#
include config/IRIX.mk

View File

@@ -1,47 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config for all versions of Linux
#
CC = gcc -Wall -Wno-format
CCC = g++ -Wall -Wno-format
RANLIB = echo
#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<
CPU_ARCH = $(shell uname -m)
ifeq (86,$(findstring 86,$(CPU_ARCH)))
CPU_ARCH = x86
endif
GFX_ARCH = x
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DLINUX
OS_LIBS = -lm -lc
ASFLAGS += -x assembler-with-cpp
ifeq ($(CPU_ARCH),alpha)
# Ask the C compiler on alpha linux to let us work with denormalized
# double values, which are required by the ECMA spec.
OS_CFLAGS += -mieee
endif

View File

@@ -1,79 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for SunOS4.1
#
CC = gcc
CCC = g++
RANLIB = ranlib
#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<
CPU_ARCH = sparc
GFX_ARCH = x
# A pile of -D's to build xfe on sunos
MOZ_CFLAGS = -DSTRINGS_ALIGNED -DNO_REGEX -DNO_ISDIR -DUSE_RE_COMP \
-DNO_REGCOMP -DUSE_GETWD -DNO_MEMMOVE -DNO_ALLOCA \
-DBOGUS_MB_MAX -DNO_CONST
# Purify doesn't like -MDupdate
NOMD_OS_CFLAGS = -DXP_UNIX -Wall -Wno-format -DSW_THREADS -DSUNOS4 -DNEED_SYSCALL \
$(MOZ_CFLAGS)
OS_CFLAGS = $(NOMD_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
OS_LIBS = -ldl -lm
MKSHLIB = $(LD) -L$(MOTIF)/lib
HAVE_PURIFY = 1
MOTIF = /home/motif/usr
MOTIFLIB = -L$(MOTIF)/lib -lXm
INCLUDES += -I/usr/X11R5/include -I$(MOTIF)/include
NOSUCHFILE = /solaris-rm-f-sucks
LOCALE_MAP = $(DEPTH)/cmd/xfe/intl/sunos.lm
EN_LOCALE = en_US
DE_LOCALE = de
FR_LOCALE = fr
JP_LOCALE = ja
SJIS_LOCALE = ja_JP.SJIS
KR_LOCALE = ko
CN_LOCALE = zh
TW_LOCALE = zh_TW
I2_LOCALE = i2
IT_LOCALE = it
SV_LOCALE = sv
ES_LOCALE = es
NL_LOCALE = nl
PT_LOCALE = pt
LOC_LIB_DIR = /usr/openwin/lib/locale
BSDECHO = echo
#
# These defines are for building unix plugins
#
BUILD_UNIX_PLUGINS = 1
DSO_LDOPTS =
DSO_LDFLAGS =

View File

@@ -1,66 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for SunOS5.3
#
CC = gcc -Wall -Wno-format
CCC = g++ -Wall -Wno-format
#CC = /opt/SUNWspro/SC3.0.1/bin/cc
RANLIB = echo
#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<
CPU_ARCH = sparc
GFX_ARCH = x
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS
OS_LIBS = -lsocket -lnsl -ldl
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
HAVE_PURIFY = 1
NOSUCHFILE = /solaris-rm-f-sucks
ifndef JS_NO_ULTRA
ULTRA_OPTIONS := -xarch=v8plus
ULTRA_OPTIONSD := -DULTRA_SPARC
else
ULTRA_OPTIONS := -xarch=v8
ULTRA_OPTIONSD :=
endif
ifeq ($(OS_CPUARCH),sun4u)
DEFINES += $(ULTRA_OPTIONSD)
ifeq ($(findstring gcc,$(CC)),gcc)
DEFINES += -Wa,$(ULTRA_OPTIONS),$(ULTRA_OPTIONSD)
else
ASFLAGS += $(ULTRA_OPTIONS) $(ULTRA_OPTIONSD)
endif
endif
ifeq ($(OS_CPUARCH),sun4m)
ifeq ($(findstring gcc,$(CC)),gcc)
DEFINES += -Wa,-xarch=v8
else
ASFLAGS += -xarch=v8
endif
endif

View File

@@ -1,67 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for SunOS5.4
#
ifdef NS_USE_NATIVE
CC = cc
CCC = CC
else
CC = gcc -Wall -Wno-format
CCC = g++ -Wall -Wno-format
endif
RANLIB = echo
CPU_ARCH = sparc
GFX_ARCH = x
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D__svr4 -DSOLARIS
OS_LIBS = -lsocket -lnsl -ldl
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
HAVE_PURIFY = 1
NOSUCHFILE = /solaris-rm-f-sucks
ifndef JS_NO_ULTRA
ULTRA_OPTIONS := -xarch=v8plus
ULTRA_OPTIONSD := -DULTRA_SPARC
else
ULTRA_OPTIONS := -xarch=v8
ULTRA_OPTIONSD :=
endif
ifeq ($(OS_CPUARCH),sun4u)
DEFINES += $(ULTRA_OPTIONSD)
ifeq ($(findstring gcc,$(CC)),gcc)
DEFINES += -Wa,$(ULTRA_OPTIONS),$(ULTRA_OPTIONSD)
else
ASFLAGS += $(ULTRA_OPTIONS) $(ULTRA_OPTIONSD)
endif
endif
ifeq ($(OS_CPUARCH),sun4m)
ifeq ($(findstring gcc,$(CC)),gcc)
DEFINES += -Wa,-xarch=v8
else
ASFLAGS += -xarch=v8
endif
endif

View File

@@ -1,71 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for SunOS5.5
#
AS = as
ifndef NS_USE_NATIVE
CC = gcc -Wall -Wno-format
CCC = g++ -Wall
else
CC = cc
CCC = CC
endif
RANLIB = echo
#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<
CPU_ARCH = sparc
GFX_ARCH = x
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -D_SVID_GETTOD
OS_LIBS = -lsocket -lnsl -ldl
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
HAVE_PURIFY = 1
NOSUCHFILE = /solaris-rm-f-sucks
ifndef JS_NO_ULTRA
ULTRA_OPTIONS := -xarch=v8plus
ULTRA_OPTIONSD := -DULTRA_SPARC
else
ULTRA_OPTIONS := -xarch=v8
ULTRA_OPTIONSD :=
endif
ifeq ($(OS_CPUARCH),sun4u)
DEFINES += $(ULTRA_OPTIONSD)
ifeq ($(findstring gcc,$(CC)),gcc)
DEFINES += -Wa,$(ULTRA_OPTIONS),$(ULTRA_OPTIONSD)
else
ASFLAGS += $(ULTRA_OPTIONS) $(ULTRA_OPTIONSD)
endif
endif
ifeq ($(OS_CPUARCH),sun4m)
ifeq ($(findstring gcc,$(CC)),gcc)
DEFINES += -Wa,-xarch=v8
else
ASFLAGS += -xarch=v8
endif
endif

View File

@@ -1,62 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for SunOS5.5
#
AS = as
CC = gcc -Wall -Wno-format
CCC = g++ -Wall -Wno-format
#CC = /opt/SUNWspro/SC3.0.1/bin/cc
RANLIB = echo
#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<
CPU_ARCH = sparc
GFX_ARCH = x
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -D_SVID_GETTOD
OS_LIBS = -lsocket -lnsl -ldl
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
HAVE_PURIFY = 1
NOSUCHFILE = /solaris-rm-f-sucks
ifndef JS_NO_ULTRA
ULTRA_OPTIONS := -xarch=v8plus -DULTRA_SPARC
else
ULTRA_OPTIONS := -xarch=v8
endif
ifeq ($(OS_CPUARCH),sun4u)
ASFLAGS += $(ULTRA_OPTIONS)
ifeq ($(findstring gcc,$(CC)),gcc)
DEFINES += -Wa,$(ULTRA_OPTIONS)
endif
else
ifeq ($(OS_CPUARCH),sun4m)
ASFLAGS += -xarch=v8
ifeq ($(findstring gcc,$(CC)),gcc)
DEFINES += -Wa,-xarch=v8
endif
endif
endif

View File

@@ -1,46 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
# Config for Windows NT using MS Visual C++ (version?)
#
CC = cl
RANLIB = echo
#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<
CPU_ARCH = x86 # XXX fixme
GFX_ARCH = win32
OS_CFLAGS = -DXP_PC -DWIN32 -D_WINDOWS -D_WIN32
OS_LIBS = -lm -lc
PREBUILT_CPUCFG = 1
USE_MSVC = 1
LIB_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib /nologo\
/subsystem:windows /dll /incremental:yes /debug\
/machine:I386
CAFEDIR = t:/cafe
JCLASSPATH = $(CAFEDIR)/Java/Lib/classes.zip
JAVAC = $(CAFEDIR)/Bin/sj.exe
JAVAH = $(CAFEDIR)/Java/Bin/javah.exe
JCFLAGS = -I$(CAFEDIR)/Java/Include -I$(CAFEDIR)/Java/Include/win32

View File

@@ -1,42 +0,0 @@
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
#
# Config stuff for Data General DG/UX
#
#
# Initial DG/UX port by Marc Fraioli (fraioli@dg-rtp.dg.com)
#
AS = as
CC = gcc
CCC = g++
RANLIB = echo
#
# _DGUX_SOURCE is needed to turn on a lot of stuff in the headers if
# you're not using DG's compiler. It shouldn't hurt if you are.
#
# _POSIX4A_DRAFT10_SOURCE is needed to pick up localtime_r, used in
# prtime.c
#
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DDGUX -D_DGUX_SOURCE -D_POSIX4A_DRAFT10_SOURCE
OS_LIBS = -lsocket -lnsl
NOSUCHFILE = /no-such-file

View File

@@ -1,30 +0,0 @@
# This is a list of local files which get copied to the mozilla:dist directory
#
jsapi.h
jsarray.h
jsatom.h
jsbool.h
jscntxt.h
jscompat.h
jsconfig.h
jsdate.h
jsdbgapi.h
jsemit.h
jsfun.h
jsgc.h
jsinterp.h
jslock.h
jsmath.h
jsnum.h
jsobj.h
jsopcode.def
jsopcode.h
jsparse.h
jsprvtd.h
jspubtd.h
jsregexp.h
jsscan.h
jsscope.h
jsscript.h
jsstr.h

File diff suppressed because it is too large Load Diff

View File

@@ -1,184 +0,0 @@
# Microsoft Developer Studio Project File - Name="jsshell" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 5.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=jsshell - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "js.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "js.mak" CFG="jsshell - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "jsshell - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "jsshell - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "jsshell - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir ".\jsshell_"
# PROP BASE Intermediate_Dir ".\jsshell_"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir ".\Release"
# PROP Intermediate_Dir ".\Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "mininspr" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D "WIN32" /D "XP_PC" /D "_WINDOWS" /D "JSFILE" /D "MINI_NSPR" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:".\Release\jsshell.exe"
!ELSEIF "$(CFG)" == "jsshell - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir ".\jsshell0"
# PROP BASE Intermediate_Dir ".\jsshell0"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir ".\Debug"
# PROP Intermediate_Dir ".\Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "mininspr" /D "_DEBUG" /D "DEBUG" /D "_CONSOLE" /D "_WIN32" /D "WIN32" /D "XP_PC" /D "_WINDOWS" /D "JSFILE" /D "MINI_NSPR" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:".\Debug\jsshell.exe"
!ENDIF
# Begin Target
# Name "jsshell - Win32 Release"
# Name "jsshell - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
# Begin Source File
SOURCE=.\js.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
# Begin Source File
SOURCE=.\jsapi.h
# End Source File
# Begin Source File
SOURCE=.\jsatom.h
# End Source File
# Begin Source File
SOURCE=.\jscntxt.h
# End Source File
# Begin Source File
SOURCE=.\jsdbgapi.h
# End Source File
# Begin Source File
SOURCE=.\jsemit.h
# End Source File
# Begin Source File
SOURCE=.\jsfun.h
# End Source File
# Begin Source File
SOURCE=.\jsgc.h
# End Source File
# Begin Source File
SOURCE=.\jsinterp.h
# End Source File
# Begin Source File
SOURCE=.\jslock.h
# End Source File
# Begin Source File
SOURCE=.\jsobj.h
# End Source File
# Begin Source File
SOURCE=.\jsopcode.h
# End Source File
# Begin Source File
SOURCE=.\jsparse.h
# End Source File
# Begin Source File
SOURCE=.\jsprvtd.h
# End Source File
# Begin Source File
SOURCE=.\jspubtd.h
# End Source File
# Begin Source File
SOURCE=.\jsregexp.h
# End Source File
# Begin Source File
SOURCE=.\jsscan.h
# End Source File
# Begin Source File
SOURCE=.\jsscope.h
# End Source File
# Begin Source File
SOURCE=.\jsscript.h
# End Source File
# Begin Source File
SOURCE=.\jsstddef.h
# End Source File
# Begin Source File
SOURCE=.\jsstr.h
# End Source File
# Begin Source File
SOURCE=.\prarena.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@@ -1,56 +0,0 @@
Microsoft Developer Studio Workspace File, Format Version 5.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "js32"=.\js32.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "jsshell"=.\js.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name js32
End Project Dependency
}}}
###############################################################################
Project: "miniNSPR"=.\miniNSPR.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,194 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
This is the JavaScript error message file.
The format for each JS error message is:
MSG_DEF(<SYMBOLIC_NAME>, <ERROR_NUMBER>, <ARGUMENT_COUNT>, <EXCEPTION_NAME>,
<FORMAT_STRING>)
where ;
<SYMBOLIC_NAME> is a legal C identifer that will be used in the
JS engine source.
<ERROR_NUMBER> is an unique integral value identifying this error.
<ARGUMENT_COUNT> is an integer literal specifying the total number of
replaceable arguments in the following format string.
<EXCEPTION_NAME> is an exception index from the enum in jsexn.c;
JSEXN_NONE for none. The given exception index will be raised by the
engine when the corresponding error occurs.
<FORMAT_STRING> is a string literal, optionally containing sequences
{X} where X is an integer representing the argument number that will
be replaced with a string value when the error is reported.
e.g.
MSG_DEF(JSMSG_NOT_A_SUBSPECIES, 73, JSEXN_NONE, 2,
"{0} is not a member of the {1} family")
can be used :
JS_ReportErrorNumber(JSMSG_NOT_A_SUBSPECIES, "Rhino", "Monkey");
to report :
"Rhino is not a member of the Monkey family"
*/
MSG_DEF(JSMSG_NOT_AN_ERROR, 0, 0, JSEXN_NONE, "<Error #0 is reserved>")
MSG_DEF(JSMSG_NOT_DEFINED, 1, 1, JSEXN_REFERENCEERR, "{0} is not defined")
MSG_DEF(JSMSG_NO_REG_EXPS, 2, 1, JSEXN_INTERNALERR, "sorry, regular expression are not supported")
MSG_DEF(JSMSG_MORE_ARGS_NEEDED, 3, 3, JSEXN_NONE, "{0} requires more than {1} argument{2}")
MSG_DEF(JSMSG_BAD_CHAR, 4, 1, JSEXN_NONE, "invalid format character {0}")
MSG_DEF(JSMSG_BAD_TYPE, 5, 1, JSEXN_NONE, "unknown type {0}")
MSG_DEF(JSMSG_CANT_LOCK, 6, 0, JSEXN_NONE, "can't lock memory")
MSG_DEF(JSMSG_CANT_UNLOCK, 7, 0, JSEXN_NONE, "can't unlock memory")
MSG_DEF(JSMSG_INCOMPATIBLE_PROTO, 8, 3, JSEXN_TARGETERR, "{0}.prototype.{1} called on incompatible {2}")
MSG_DEF(JSMSG_NO_CONSTRUCTOR, 9, 1, JSEXN_NONE, "{0} has no constructor")
MSG_DEF(JSMSG_CANT_ALIAS, 10, 3, JSEXN_NONE, "can't alias {0} to {1} in class {2}")
MSG_DEF(JSMSG_NO_PROTO, 11, 1, JSEXN_INTERNALERR, "sorry, Array.prototype.{0} is not yet implemented")
MSG_DEF(JSMSG_BAD_SORT_ARG, 12, 0, JSEXN_ARRAYERR, "invalid Array.prototype.sort argument")
MSG_DEF(JSMSG_BAD_ATOMIC_NUMBER, 13, 1, JSEXN_INTERNALERR, "internal error: no index for atom {0}")
MSG_DEF(JSMSG_TOO_MANY_LITERALS, 14, 0, JSEXN_INTERNALERR, "too many literals")
MSG_DEF(JSMSG_CANT_WATCH, 15, 1, JSEXN_NONE, "can't watch non-native objects of class {0}")
MSG_DEF(JSMSG_STACK_UNDERFLOW, 16, 2, JSEXN_INTERNALERR, "internal error compiling {0}: stack underflow at pc {1}")
MSG_DEF(JSMSG_NEED_DIET, 17, 1, JSEXN_SYNTAXERR, "{0} too large")
MSG_DEF(JSMSG_BAD_CASE, 18, 2, JSEXN_SYNTAXERR, "{0}, line {1}: invalid case expression")
MSG_DEF(JSMSG_READ_ONLY, 19, 1, JSEXN_ERR, "{0} is read-only")
MSG_DEF(JSMSG_BAD_FORMAL, 20, 0, JSEXN_SYNTAXERR, "malformed formal parameter")
MSG_DEF(JSMSG_SAME_FORMAL, 21, 1, JSEXN_NONE, "duplicate formal argument {0}")
MSG_DEF(JSMSG_NOT_FUNCTION, 22, 1, JSEXN_CALLERR, "{0} is not a function")
MSG_DEF(JSMSG_NOT_CONSTRUCTOR, 23, 1, JSEXN_CONSTRUCTORERR, "{0} is not a constructor")
MSG_DEF(JSMSG_STACK_OVERFLOW, 24, 1, JSEXN_NONE, "stack overflow in {0}")
MSG_DEF(JSMSG_NOT_EXPORTED, 25, 1, JSEXN_NONE, "{0} is not exported")
MSG_DEF(JSMSG_OVER_RECURSED, 26, 0, JSEXN_NONE, "too much recursion")
MSG_DEF(JSMSG_IN_NOT_OBJECT, 27, 0, JSEXN_ERR, "target of 'in' operator must be an object")
MSG_DEF(JSMSG_BAD_NEW_RESULT, 28, 1, JSEXN_NONE, "invalid new expression result {0}")
MSG_DEF(JSMSG_BAD_SHARP_DEF, 29, 1, JSEXN_ERR, "invalid sharp variable definition #{0}=")
MSG_DEF(JSMSG_BAD_SHARP_USE, 30, 1, JSEXN_ERR, "invalid sharp variable use #{0}#")
MSG_DEF(JSMSG_BAD_INSTANCEOF_RHS, 31, 1, JSEXN_ERR, "invalid instanceof operand {0}")
MSG_DEF(JSMSG_BAD_BYTECODE, 32, 1, JSEXN_INTERNALERR, "unimplemented JavaScript bytecode {0}")
MSG_DEF(JSMSG_BAD_RADIX, 33, 1, JSEXN_ERR, "illegal radix {0}")
MSG_DEF(JSMSG_NAN, 34, 1, JSEXN_ERR, "{0} is not a number")
MSG_DEF(JSMSG_CANT_CONVERT, 35, 1, JSEXN_TOPRIMITIVEERR, "can't convert {0} to an integer")
MSG_DEF(JSMSG_CYCLIC_VALUE, 36, 1, JSEXN_ERR, "cyclic {0} value")
MSG_DEF(JSMSG_PERMANENT, 37, 1, JSEXN_ERR, "{0} is permanent")
MSG_DEF(JSMSG_CANT_CONVERT_TO, 38, 2, JSEXN_DEFAULTVALUEERR, "can't convert {0} to {1}")
MSG_DEF(JSMSG_NO_PROPERTIES, 39, 1, JSEXN_TOOBJECTERR, "{0} has no properties")
MSG_DEF(JSMSG_CANT_FIND_CLASS, 40, 1, JSEXN_NONE, "can't find class id {0}")
MSG_DEF(JSMSG_CANT_XDR_CLASS, 41, 1, JSEXN_NONE, "can't XDR class {0}")
MSG_DEF(JSMSG_BYTECODE_TOO_BIG, 42, 2, JSEXN_INTERNALERR, "bytecode {0} too large (limit {1})")
MSG_DEF(JSMSG_UNKNOWN_FORMAT, 43, 1, JSEXN_INTERNALERR, "unknown bytecode format {0}")
MSG_DEF(JSMSG_TOO_MANY_CON_ARGS, 44, 0, JSEXN_SYNTAXERR, "too many constructor arguments")
MSG_DEF(JSMSG_TOO_MANY_FUN_ARGS, 45, 0, JSEXN_SYNTAXERR, "too many function arguments")
MSG_DEF(JSMSG_BAD_QUANTIFIER, 46, 1, JSEXN_SYNTAXERR, "invalid quantifier {0}")
MSG_DEF(JSMSG_MIN_TOO_BIG, 47, 1, JSEXN_SYNTAXERR, "overlarge minimum {0}")
MSG_DEF(JSMSG_MAX_TOO_BIG, 48, 1, JSEXN_SYNTAXERR, "overlarge maximum {0}")
MSG_DEF(JSMSG_OUT_OF_ORDER, 49, 1, JSEXN_SYNTAXERR, "maximum {0} less than minimum")
MSG_DEF(JSMSG_ZERO_QUANTIFIER, 50, 1, JSEXN_SYNTAXERR, "zero quantifier {0}")
MSG_DEF(JSMSG_UNTERM_QUANTIFIER, 51, 1, JSEXN_SYNTAXERR, "unterminated quantifier {0}")
MSG_DEF(JSMSG_EMPTY_BEFORE_STAR, 52, 0, JSEXN_SYNTAXERR, "regular expression before * could be empty")
MSG_DEF(JSMSG_EMPTY_BEFORE_PLUS, 53, 0, JSEXN_SYNTAXERR, "regular expression before + could be empty")
MSG_DEF(JSMSG_MISSING_PAREN, 54, 1, JSEXN_SYNTAXERR, "unterminated parenthetical {0}")
MSG_DEF(JSMSG_UNTERM_CLASS, 55, 1, JSEXN_SYNTAXERR, "unterminated character class {0}")
MSG_DEF(JSMSG_TRAILING_SLASH, 56, 0, JSEXN_SYNTAXERR, "trailing \\ in regular expression")
MSG_DEF(JSMSG_BAD_CLASS_RANGE, 57, 0, JSEXN_SYNTAXERR, "invalid range in character class")
MSG_DEF(JSMSG_BAD_FLAG, 58, 1, JSEXN_SYNTAXERR, "invalid regular expression flag {0}")
MSG_DEF(JSMSG_NO_INPUT, 59, 3, JSEXN_SYNTAXERR, "no input for /{0}/{1}{2}")
MSG_DEF(JSMSG_CANT_OPEN, 60, 2, JSEXN_NONE, "can't open {0}: {1}")
MSG_DEF(JSMSG_BAD_STRING_MASK, 61, 1, JSEXN_ERR, "invalid string escape mask {0}")
MSG_DEF(JSMSG_NO_STRING_PROTO, 62, 1, JSEXN_INTERNALERR, "sorry, String.prototype.{0} is not yet implemented")
MSG_DEF(JSMSG_END_OF_DATA, 63, 0, JSEXN_NONE, "unexpected end of data")
MSG_DEF(JSMSG_SEEK_BEYOND_START, 64, 0, JSEXN_NONE, "illegal seek beyond start")
MSG_DEF(JSMSG_SEEK_BEYOND_END, 65, 0, JSEXN_NONE, "illegal seek beyond end")
MSG_DEF(JSMSG_END_SEEK, 66, 0, JSEXN_NONE, "illegal end-based seek")
MSG_DEF(JSMSG_WHITHER_WHENCE, 67, 1, JSEXN_NONE, "unknown seek whence: {0}")
MSG_DEF(JSMSG_BAD_JVAL_TYPE, 68, 1, JSEXN_NONE, "unknown jsval type {0} for XDR")
MSG_DEF(JSMSG_PAREN_BEFORE_FORMAL, 69, 0, JSEXN_SYNTAXERR, "missing ( before formal parameters")
MSG_DEF(JSMSG_MISSING_FORMAL, 70, 0, JSEXN_SYNTAXERR, "missing formal parameter")
MSG_DEF(JSMSG_PAREN_AFTER_FORMAL, 71, 0, JSEXN_SYNTAXERR, "missing ) after formal parameters")
MSG_DEF(JSMSG_CURLY_BEFORE_BODY, 72, 0, JSEXN_SYNTAXERR, "missing { before function body")
MSG_DEF(JSMSG_CURLY_AFTER_BODY, 73, 0, JSEXN_SYNTAXERR, "missing } after function body")
MSG_DEF(JSMSG_PAREN_BEFORE_COND, 74, 0, JSEXN_SYNTAXERR, "missing ( before condition")
MSG_DEF(JSMSG_PAREN_AFTER_COND, 75, 0, JSEXN_SYNTAXERR, "missing ) after condition")
MSG_DEF(JSMSG_NO_IMPORT_NAME, 76, 0, JSEXN_SYNTAXERR, "missing name in import statement")
MSG_DEF(JSMSG_NAME_AFTER_DOT, 77, 0, JSEXN_SYNTAXERR, "missing name after . operator")
MSG_DEF(JSMSG_BRACKET_IN_INDEX, 78, 0, JSEXN_SYNTAXERR, "missing ] in index expression")
MSG_DEF(JSMSG_NO_EXPORT_NAME, 79, 0, JSEXN_SYNTAXERR, "missing name in export statement")
MSG_DEF(JSMSG_PAREN_BEFORE_SWITCH, 80, 0, JSEXN_SYNTAXERR, "missing ( before switch expression")
MSG_DEF(JSMSG_PAREN_AFTER_SWITCH, 81, 0, JSEXN_SYNTAXERR, "missing ) after switch expression")
MSG_DEF(JSMSG_CURLY_BEFORE_SWITCH, 82, 0, JSEXN_SYNTAXERR, "missing { before switch body")
MSG_DEF(JSMSG_COLON_AFTER_CASE, 83, 0, JSEXN_SYNTAXERR, "missing : after case label")
MSG_DEF(JSMSG_WHILE_AFTER_DO, 84, 0, JSEXN_SYNTAXERR, "missing while after do-loop body")
MSG_DEF(JSMSG_PAREN_AFTER_FOR, 85, 0, JSEXN_SYNTAXERR, "missing ( after for")
MSG_DEF(JSMSG_SEMI_AFTER_FOR_INIT, 86, 0, JSEXN_SYNTAXERR, "missing ; after for-loop initializer")
MSG_DEF(JSMSG_SEMI_AFTER_FOR_COND, 87, 0, JSEXN_SYNTAXERR, "missing ; after for-loop condition")
MSG_DEF(JSMSG_PAREN_AFTER_FOR_CTRL, 88, 0, JSEXN_SYNTAXERR, "missing ) after for-loop control")
MSG_DEF(JSMSG_CURLY_BEFORE_TRY, 89, 0, JSEXN_SYNTAXERR, "missing { before try block")
MSG_DEF(JSMSG_CURLY_AFTER_TRY, 90, 0, JSEXN_SYNTAXERR, "missing } after try block")
MSG_DEF(JSMSG_PAREN_BEFORE_CATCH, 91, 0, JSEXN_SYNTAXERR, "missing ( before catch")
MSG_DEF(JSMSG_CATCH_IDENTIFIER, 92, 0, JSEXN_SYNTAXERR, "missing identifier in catch")
MSG_DEF(JSMSG_PAREN_AFTER_CATCH, 93, 0, JSEXN_SYNTAXERR, "missing ) after catch")
MSG_DEF(JSMSG_CURLY_BEFORE_CATCH, 94, 0, JSEXN_SYNTAXERR, "missing { before catch block")
MSG_DEF(JSMSG_CURLY_AFTER_CATCH, 95, 0, JSEXN_SYNTAXERR, "missing } after catch block")
MSG_DEF(JSMSG_CURLY_BEFORE_FINALLY, 96, 0, JSEXN_SYNTAXERR, "missing { before finally block")
MSG_DEF(JSMSG_CURLY_AFTER_FINALLY, 97, 0, JSEXN_SYNTAXERR, "missing } after finally block")
MSG_DEF(JSMSG_CATCH_OR_FINALLY, 98, 0, JSEXN_SYNTAXERR, "missing catch or finally after try")
MSG_DEF(JSMSG_PAREN_BEFORE_WITH, 99, 0, JSEXN_SYNTAXERR, "missing ( before with-statement object")
MSG_DEF(JSMSG_PAREN_AFTER_WITH, 100, 0, JSEXN_SYNTAXERR, "missing ) after with-statement object")
MSG_DEF(JSMSG_CURLY_IN_COMPOUND, 101, 0, JSEXN_SYNTAXERR, "missing } in compound statement")
MSG_DEF(JSMSG_NO_VARIABLE_NAME, 102, 0, JSEXN_SYNTAXERR, "missing variable name")
MSG_DEF(JSMSG_COLON_IN_COND, 103, 0, JSEXN_SYNTAXERR, "missing : in conditional expression")
MSG_DEF(JSMSG_PAREN_AFTER_ARGS, 104, 0, JSEXN_SYNTAXERR, "missing ) after argument list")
MSG_DEF(JSMSG_BRACKET_AFTER_LIST, 105, 0, JSEXN_SYNTAXERR, "missing ] after element list")
MSG_DEF(JSMSG_COLON_AFTER_ID, 106, 0, JSEXN_SYNTAXERR, "missing : after property id")
MSG_DEF(JSMSG_CURLY_AFTER_LIST, 107, 0, JSEXN_SYNTAXERR, "missing } after property list")
MSG_DEF(JSMSG_PAREN_IN_PAREN, 108, 0, JSEXN_SYNTAXERR, "missing ) in parenthetical")
MSG_DEF(JSMSG_SEMI_BEFORE_STMNT, 109, 0, JSEXN_SYNTAXERR, "missing ; before statement")
MSG_DEF(JSMSG_NO_RETURN_VALUE, 110, 0, JSEXN_NONE, "function does not always return a value")
MSG_DEF(JSMSG_DUPLICATE_FORMAL, 111, 1, JSEXN_NONE, "duplicate formal argument {0}")
MSG_DEF(JSMSG_EQUAL_AS_ASSIGN, 112, 1, JSEXN_NONE, "test for equality (==) mistyped as assignment (=)?{0}")
MSG_DEF(JSMSG_BAD_IMPORT, 113, 0, JSEXN_SYNTAXERR, "invalid import expression")
MSG_DEF(JSMSG_TOO_MANY_DEFAULTS, 114, 0, JSEXN_SYNTAXERR, "more than one switch default")
MSG_DEF(JSMSG_TOO_MANY_CASES, 115, 0, JSEXN_INTERNALERR, "too many switch cases")
MSG_DEF(JSMSG_BAD_SWITCH, 116, 0, JSEXN_SYNTAXERR, "invalid switch statement")
MSG_DEF(JSMSG_BAD_FOR_LEFTSIDE, 117, 0, JSEXN_SYNTAXERR, "invalid for/in left-hand side")
MSG_DEF(JSMSG_CATCH_AFTER_GENERAL, 118, 0, JSEXN_NONE, "catch clause after general catch")
MSG_DEF(JSMSG_CATCH_WITHOUT_TRY, 119, 0, JSEXN_SYNTAXERR, "catch without try")
MSG_DEF(JSMSG_FINALLY_WITHOUT_TRY, 120, 0, JSEXN_SYNTAXERR, "finally without try")
MSG_DEF(JSMSG_LABEL_NOT_FOUND, 121, 0, JSEXN_SYNTAXERR, "label not found")
MSG_DEF(JSMSG_TOUGH_BREAK, 122, 0, JSEXN_SYNTAXERR, "invalid break")
MSG_DEF(JSMSG_BAD_CONTINUE, 123, 0, JSEXN_SYNTAXERR, "invalid continue")
MSG_DEF(JSMSG_BAD_RETURN, 124, 0, JSEXN_SYNTAXERR, "invalid return")
MSG_DEF(JSMSG_BAD_LABEL, 125, 0, JSEXN_SYNTAXERR, "invalid label")
MSG_DEF(JSMSG_DUPLICATE_LABEL, 126, 0, JSEXN_SYNTAXERR, "duplicate label")
MSG_DEF(JSMSG_VAR_HIDES_ARG, 127, 1, JSEXN_NONE, "variable {0} hides argument")
MSG_DEF(JSMSG_BAD_VAR_INIT, 128, 0, JSEXN_SYNTAXERR, "invalid variable initialization")
MSG_DEF(JSMSG_BAD_LEFTSIDE_OF_ASS, 129, 0, JSEXN_SYNTAXERR, "invalid assignment left-hand side")
MSG_DEF(JSMSG_BAD_OPERAND, 130, 1, JSEXN_SYNTAXERR, "invalid {0} operand")
MSG_DEF(JSMSG_BAD_PROP_ID, 131, 0, JSEXN_SYNTAXERR, "invalid property id")
MSG_DEF(JSMSG_RESERVED_ID, 132, 1, JSEXN_SYNTAXERR, "{0} is a reserved identifier")
MSG_DEF(JSMSG_SYNTAX_ERROR, 133, 0, JSEXN_SYNTAXERR, "syntax error")
MSG_DEF(JSMSG_BAD_SHARP_VAR_DEF, 134, 0, JSEXN_SYNTAXERR, "invalid sharp variable definition")
MSG_DEF(JSMSG_BAD_PROTOTYPE, 135, 1, JSEXN_ERR, "'prototype' property of {0} is not an object")

View File

@@ -1,130 +0,0 @@
; The contents of this file are subject to the Netscape Public License
; Version 1.0 (the "NPL"); you may not use this file except in
; compliance with the NPL. You may obtain a copy of the NPL at
; http://www.mozilla.org/NPL/
;
; Software distributed under the NPL is distributed on an "AS IS" basis,
; WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
; for the specific language governing rights and limitations under the
; NPL.
;
; The Initial Developer of this code under the NPL is Netscape
; Communications Corporation. Portions created by Netscape are
; Copyright (C) 1998 Netscape Communications Corporation. All Rights
; Reserved.
LIBRARY JS1640.DLL
EXETYPE WINDOWS
PROTMODE
DESCRIPTION 'Netscape 16-bit JavaScript Library'
CODE LOADONCALL MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE SINGLE
HEAPSIZE 8192
EXPORTS
WEP @1 RESIDENTNAME NONAME
_JS_Init = _JS_Init @2
_JS_Finish = _JS_Finish @3
_JS_GetNaNValue
_JS_GetNegativeInfinityValue
_JS_GetPositiveInfinityValue
_JS_GetEmptyStringValue
_JS_ConvertValue
_JS_ValueToObject
_JS_ValueToFunction
_JS_ValueToString
_JS_ValueToNumber
_JS_ValueToBoolean
_JS_TypeOfValue
_JS_GetTypeName
_JS_Lock
_JS_Unlock
_JS_NewContext
_JS_DestroyContext
_JS_ContextIterator
_JS_GetGlobalObject
_JS_SetGlobalObject
_JS_InitStandardClasses
; _JS_GetStaticLink
_JS_malloc
_JS_realloc
_JS_free
_JS_strdup
_JS_NewDouble
_JS_NewDoubleValue
_JS_AddRoot
_JS_RemoveRoot
_JS_LockGCThing
_JS_UnlockGCThing
_JS_GC
_JS_PropertyStub
_JS_EnumerateStub
_JS_ResolveStub
_JS_ConvertStub
_JS_FinalizeStub
_JS_InitClass
_JS_GetClass
_JS_InstanceOf
_JS_GetPrivate
_JS_SetPrivate
_JS_GetInstancePrivate
_JS_GetPrototype
_JS_GetParent
_JS_SetParent
_JS_GetConstructor
_JS_NewObject
_JS_DefineObject
_JS_DefineConstDoubles
_JS_DefineProperties
_JS_DefineProperty
_JS_DefinePropertyWithTinyId
_JS_AliasProperty
_JS_LookupProperty
_JS_GetProperty
_JS_SetProperty
_JS_DeleteProperty
_JS_NewArrayObject
_JS_DefineElement
_JS_AliasElement
_JS_LookupElement
_JS_GetElement
_JS_SetElement
_JS_DeleteElement
_JS_ClearScope
_JS_NewFunction
_JS_GetFunctionObject
_JS_GetFunctionName
_JS_DefineFunctions
_JS_DefineFunction
_JS_CompileScript
_JS_DestroyScript
_JS_CompileFunction
_JS_DecompileScript
_JS_DecompileFunction
_JS_DecompileFunctionBody
_JS_ExecuteScript
_JS_EvaluateScript
_JS_CallFunction
_JS_CallFunctionName
_JS_CallFunctionValue
_JS_SetBranchCallback
_JS_IsRunning
_JS_NewString
_JS_NewStringCopyN
_JS_NewStringCopyZ
_JS_InternString
_JS_GetStringBytes
_JS_GetStringLength
_JS_CompareStrings
_JS_ReportError
_JS_ReportOutOfMemory
_JS_SetErrorReporter
_JS_NewRegExpObject
_JS_SetRegExpInput
_JS_ClearRegExpStatics
IMPORTS
_printf = nspr21.11
_strftime = nspr21.13

View File

@@ -1,137 +0,0 @@
LIBRARY JS1640.DLL
EXETYPE WINDOWS
PROTMODE
DESCRIPTION 'Netscape 16-bit JavaScript Library'
CODE LOADONCALL MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE SINGLE
HEAPSIZE 8192
EXPORTS
WEP @1 RESIDENTNAME NONAME
_JS_Init = _JS_Init @2
_JS_Finish = _JS_Finish @3
_JS_GetNaNValue
_JS_GetNegativeInfinityValue
_JS_GetPositiveInfinityValue
_JS_GetEmptyStringValue
_JS_ConvertValue
_JS_ValueToObject
_JS_ValueToFunction
_JS_ValueToString
_JS_ValueToNumber
_JS_ValueToBoolean
_JS_TypeOfValue
_JS_GetTypeName
_JS_Lock
_JS_Unlock
_JS_NewContext
_JS_DestroyContext
_JS_ContextIterator
_JS_GetGlobalObject
_JS_SetGlobalObject
_JS_InitStandardClasses
; _JS_GetStaticLink
_JS_malloc
_JS_realloc
_JS_free
_JS_strdup
_JS_NewDouble
_JS_NewDoubleValue
_JS_AddRoot
_JS_RemoveRoot
_JS_LockGCThing
_JS_UnlockGCThing
_JS_GC
_JS_PropertyStub
_JS_EnumerateStub
_JS_ResolveStub
_JS_ConvertStub
_JS_FinalizeStub
_JS_InitClass
_JS_GetClass
_JS_InstanceOf
_JS_GetPrivate
_JS_SetPrivate
_JS_GetInstancePrivate
_JS_GetPrototype
_JS_GetParent
_JS_SetParent
_JS_GetConstructor
_JS_NewObject
_JS_DefineObject
_JS_DefineConstDoubles
_JS_DefineProperties
_JS_DefineProperty
_JS_DefinePropertyWithTinyId
_JS_AliasProperty
_JS_LookupProperty
_JS_GetProperty
_JS_SetProperty
_JS_DeleteProperty
_JS_NewArrayObject
_JS_DefineElement
_JS_AliasElement
_JS_LookupElement
_JS_GetElement
_JS_SetElement
_JS_DeleteElement
_JS_ClearScope
_JS_NewFunction
_JS_GetFunctionObject
_JS_GetFunctionName
_JS_DefineFunctions
_JS_DefineFunction
_JS_CompileScript
_JS_DestroyScript
_JS_CompileFunction
_JS_DecompileScript
_JS_DecompileFunction
_JS_DecompileFunctionBody
_JS_ExecuteScript
_JS_EvaluateScript
_JS_CallFunction
_JS_CallFunctionName
_JS_CallFunctionValue
_JS_SetBranchCallback
_JS_IsRunning
_JS_NewString
_JS_NewStringCopyN
_JS_NewStringCopyZ
_JS_InternString
_JS_GetStringBytes
_JS_GetStringLength
_JS_CompareStrings
_JS_ReportError
_JS_ReportOutOfMemory
_JS_SetErrorReporter
_JS_NewRegExpObject
_JS_SetRegExpInput
_JS_ClearRegExpStatics

View File

@@ -1,60 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Version stamp for this .DLL
#include <windows.h>
#include <ver.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 4 // major, minor, release (alpha 1), build #
PRODUCTVERSION 4
FILEFLAGSMASK 0
FILEFLAGS 0 // final version
FILEOS VOS_DOS_WINDOWS16
FILETYPE VFT_DLL
FILESUBTYPE 0 // not used
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4" // Lang=US English, CharSet=Windows Multilingual
BEGIN
VALUE "CompanyName", "Netscape Communications Corporation\0"
VALUE "FileDescription", "Netscape 16-bit JavaScript Module\0"
VALUE "FileVersion", "4.0\0"
VALUE "InternalName", "JS1640\0"
VALUE "LegalCopyright", "Copyright Netscape Communications. 1994-96\0"
VALUE "LegalTrademarks", "Netscape, Mozilla\0"
VALUE "OriginalFilename","JS1640.DLL\0"
VALUE "ProductName", "NETSCAPE\0"
VALUE "ProductVersion", "4.0\0"
END
END
END

View File

@@ -1,318 +0,0 @@
# Microsoft Developer Studio Project File - Name="js32" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 5.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=js32 - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "js32.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "js32.mak" CFG="js32 - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "js32 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "js32 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "js32 - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir ".\js32\Release"
# PROP BASE Intermediate_Dir ".\js32\Release"
# PROP BASE Target_Dir ".\js32"
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir ".\Release"
# PROP Intermediate_Dir ".\Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ".\js32"
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "mininspr" /D "NDEBUG" /D "_WINDOWS" /D "_WIN32" /D "WIN32" /D "XP_PC" /D "JSFILE" /D "EXPORT_JS_API" /D "MINI_NSPR" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 H:\ns\dist\WINNT4.0_OPT.OBJ\lib\libnspr21_s.lib H:\ns\dist\WINNT4.0_OPT.OBJ\lib\libplds21_s.lib winmm.lib mswsock.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
!ELSEIF "$(CFG)" == "js32 - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir ".\js32\Debug"
# PROP BASE Intermediate_Dir ".\js32\Debug"
# PROP BASE Target_Dir ".\js32"
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir ".\Debug"
# PROP Intermediate_Dir ".\Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ".\js32"
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "mininspr" /D "_DEBUG" /D "DEBUG" /D "_WINDOWS" /D "_WIN32" /D "WIN32" /D "XP_PC" /D "JSFILE" /D "EXPORT_JS_API" /D "MINI_NSPR" /YX /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
# ADD LINK32 H:\ns\dist\WINNT4.0_DBG.OBJ\lib\libnspr21_s.lib H:\ns\dist\WINNT4.0_DBG.OBJ\lib\libplds21_s.lib winmm.lib mswsock.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
!ENDIF
# Begin Target
# Name "js32 - Win32 Release"
# Name "js32 - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
# Begin Source File
SOURCE=.\jsapi.c
# End Source File
# Begin Source File
SOURCE=.\jsarray.c
# End Source File
# Begin Source File
SOURCE=.\jsatom.c
# End Source File
# Begin Source File
SOURCE=.\jsbool.c
# End Source File
# Begin Source File
SOURCE=.\jscntxt.c
# End Source File
# Begin Source File
SOURCE=.\jsdate.c
# End Source File
# Begin Source File
SOURCE=.\jsdbgapi.c
# End Source File
# Begin Source File
SOURCE=.\jsemit.c
# End Source File
# Begin Source File
SOURCE=.\jsfun.c
# End Source File
# Begin Source File
SOURCE=.\jsgc.c
# End Source File
# Begin Source File
SOURCE=.\jsinterp.c
# End Source File
# Begin Source File
SOURCE=.\jslock.c
# End Source File
# Begin Source File
SOURCE=.\jsmath.c
# End Source File
# Begin Source File
SOURCE=.\jsnum.c
# End Source File
# Begin Source File
SOURCE=.\jsobj.c
# End Source File
# Begin Source File
SOURCE=.\jsopcode.c
# End Source File
# Begin Source File
SOURCE=.\jsparse.c
# End Source File
# Begin Source File
SOURCE=.\jsregexp.c
# End Source File
# Begin Source File
SOURCE=.\jsscan.c
# End Source File
# Begin Source File
SOURCE=.\jsscope.c
# End Source File
# Begin Source File
SOURCE=.\jsscript.c
# End Source File
# Begin Source File
SOURCE=.\jsstr.c
# End Source File
# Begin Source File
SOURCE=.\jsxdrapi.c
# End Source File
# Begin Source File
SOURCE=.\prarena.c
# End Source File
# Begin Source File
SOURCE=.\prmjtime.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
# Begin Source File
SOURCE=.\jsapi.h
# End Source File
# Begin Source File
SOURCE=.\jsarray.h
# End Source File
# Begin Source File
SOURCE=.\jsatom.h
# End Source File
# Begin Source File
SOURCE=.\jsbool.h
# End Source File
# Begin Source File
SOURCE=.\jscntxt.h
# End Source File
# Begin Source File
SOURCE=.\jsconfig.h
# End Source File
# Begin Source File
SOURCE=.\jsdate.h
# End Source File
# Begin Source File
SOURCE=.\jsdbgapi.h
# End Source File
# Begin Source File
SOURCE=.\jsemit.h
# End Source File
# Begin Source File
SOURCE=.\jsfun.h
# End Source File
# Begin Source File
SOURCE=.\jsgc.h
# End Source File
# Begin Source File
SOURCE=.\jsinterp.h
# End Source File
# Begin Source File
SOURCE=.\jslock.h
# End Source File
# Begin Source File
SOURCE=.\jsmath.h
# End Source File
# Begin Source File
SOURCE=.\jsnum.h
# End Source File
# Begin Source File
SOURCE=.\jsobj.h
# End Source File
# Begin Source File
SOURCE=.\jsopcode.h
# End Source File
# Begin Source File
SOURCE=.\jsparse.h
# End Source File
# Begin Source File
SOURCE=.\jsprvtd.h
# End Source File
# Begin Source File
SOURCE=.\jspubtd.h
# End Source File
# Begin Source File
SOURCE=.\jsregexp.h
# End Source File
# Begin Source File
SOURCE=.\jsscan.h
# End Source File
# Begin Source File
SOURCE=.\jsscope.h
# End Source File
# Begin Source File
SOURCE=.\jsscript.h
# End Source File
# Begin Source File
SOURCE=.\jsstddef.h
# End Source File
# Begin Source File
SOURCE=.\jsstr.h
# End Source File
# Begin Source File
SOURCE=.\jsxdrapi.h
# End Source File
# Begin Source File
SOURCE=.\prarena.h
# End Source File
# Begin Source File
SOURCE=.\prdtoa.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@@ -1,79 +0,0 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winver.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,0,0,0
PRODUCTVERSION 4,0,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x10004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904e4"
BEGIN
VALUE "CompanyName", "Netscape Communications Corporation\0"
VALUE "FileDescription", "Netscape 32-bit JavaScript Module\0"
VALUE "FileVersion", "4.0\0"
VALUE "InternalName", "JS3240\0"
VALUE "LegalCopyright", "Copyright Netscape Communications. 1994-96\0"
VALUE "LegalTrademarks", "Netscape, Mozilla\0"
VALUE "OriginalFilename", "js3240.dll\0"
VALUE "ProductName", "NETSCAPE\0"
VALUE "ProductVersion", "4.0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""winver.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////

View File

@@ -1,623 +0,0 @@
; The contents of this file are subject to the Netscape Public License
; Version 1.0 (the "NPL"); you may not use this file except in
; compliance with the NPL. You may obtain a copy of the NPL at
; http://www.mozilla.org/NPL/
;
; Software distributed under the NPL is distributed on an "AS IS" basis,
; WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
; for the specific language governing rights and limitations under the
; NPL.
;
; The Initial Developer of this code under the NPL is Netscape
; Communications Corporation. Portions created by Netscape are
; Copyright (C) 1998 Netscape Communications Corporation. All Rights
; Reserved.
LIBRARY JS3240 INITINSTANCE TERMINSTANCE
PROTMODE
DESCRIPTION 'Netscape OS/2 JavaScript Library'
CODE LOADONCALL MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE NONSHARED
EXPORTS
;====================== win16 exports these at least... ===========
; JS_Init = JS_Init @2
; JS_Finish = JS_Finish @3
; JS_GetNaNValue
; JS_GetNegativeInfinityValue
; JS_GetPositiveInfinityValue
; JS_GetEmptyStringValue
; JS_ConvertValue
; JS_ValueToObject
; JS_ValueToFunction
; JS_ValueToString
; JS_ValueToNumber
; JS_ValueToBoolean
; JS_TypeOfValue
; JS_GetTypeName
; JS_Lock
; JS_Unlock
; JS_NewContext
; JS_DestroyContext
; JS_ContextIterator
; JS_GetGlobalObject
; JS_SetGlobalObject
; JS_InitStandardClasses
;; JS_GetStaticLink
; JS_malloc
; JS_realloc
; JS_free
; JS_strdup
; JS_NewDouble
; JS_NewDoubleValue
; JS_AddRoot
; JS_RemoveRoot
; JS_LockGCThing
; JS_UnlockGCThing
; JS_GC
; JS_PropertyStub
; JS_EnumerateStub
; JS_ResolveStub
; JS_ConvertStub
; JS_FinalizeStub
; JS_InitClass
; JS_GetClass
; JS_InstanceOf
; JS_GetPrivate
; JS_SetPrivate
; JS_GetInstancePrivate
; JS_GetPrototype
; JS_GetParent
; JS_SetParent
; JS_GetConstructor
; JS_NewObject
; JS_DefineObject
; JS_DefineConstDoubles
; JS_DefineProperties
; JS_DefineProperty
; JS_DefinePropertyWithTinyId
; JS_AliasProperty
; JS_LookupProperty
; JS_GetProperty
; JS_SetProperty
; JS_DeleteProperty
; JS_NewArrayObject
; JS_DefineElement
; JS_AliasElement
; JS_LookupElement
; JS_GetElement
; JS_SetElement
; JS_DeleteElement
; JS_ClearScope
; JS_NewFunction
; JS_GetFunctionObject
; JS_GetFunctionName
; JS_DefineFunctions
; JS_DefineFunction
; JS_CompileScript
; JS_DestroyScript
; JS_CompileFunction
; JS_DecompileScript
; JS_DecompileFunction
; JS_DecompileFunctionBody
; JS_ExecuteScript
; JS_EvaluateScript
; JS_CallFunction
; JS_CallFunctionName
; JS_CallFunctionValue
; JS_SetBranchCallback
; JS_IsRunning
; JS_NewString
; JS_NewStringCopyN
; JS_NewStringCopyZ
; JS_InternString
; JS_GetStringBytes
; JS_GetStringLength
; JS_CompareStrings
; JS_ReportError
; JS_ReportOutOfMemory
; JS_SetErrorReporter
; JS_NewRegExpObject
; JS_SetRegExpInput
; JS_ClearRegExpStatics
;=================================================
;00001:jsstr (OFFSET:0x00002e17, SIZE:0x0000ae17):
; - Public Definitions:
; js_EmptySubString
; js_CompareStrings
; js_HashString
; js_ValueToString
; js_StringToObject
; js_FinalizeString
; js_NewStringCopyZ
; js_NewString
; js_InitStringClass
; js_NewStringCopyN
; js_BoyerMooreHorspool
;
;
;00002:jsscript (OFFSET:0x0000dc2e, SIZE:0x00003abb):
; - Public Definitions:
; js_LineNumberToPC
; js_PCToLineNumber
; js_GetSrcNote
; js_DestroyScript
; js_NewScript
;
;
;00003:jsscope (OFFSET:0x000116e9, SIZE:0x00004f82):
; - Public Definitions:
; js_hash_scope_ops
; js_list_scope_ops
; js_DestroyProperty
; js_NewProperty
; js_IdToValue
; js_HashValue
; js_DestroyScope
; js_MutateScope
; js_DropScope
; js_HoldScope
; js_NewScope
; js_GetMutableScope
; js_HoldProperty
; js_DropProperty
;
;
;00004:jsscan (OFFSET:0x0001666b, SIZE:0x00008890):
; - Public Definitions:
; js_MatchToken
; js_FlushNewlines
; js_PeekTokenSameLine
; js_UngetToken
; js_GetToken
; js_PeekToken
; js_ReportCompileError
js_CloseTokenStream
js_NewBufferTokenStream
; js_NewTokenStream
; js_InitScanner
;
;
;00005:jsregexp (OFFSET:0x0001eefb, SIZE:0x0000eee4):
; - Public Definitions:
; js_RegExpClass
; reopsize
; js_NewRegExpObject
; js_InitRegExpClass
; js_FreeRegExpStatics
; js_InitRegExpStatics
; js_ExecuteRegExp
; js_NewRegExpOpt
; js_DestroyRegExp
; js_NewRegExp
;
;
;00006:jsparse (OFFSET:0x0002dddf, SIZE:0x00010b71):
; - Public Definitions:
; js_ParseFunctionBody
js_Parse
;
;
;00007:jsopcode (OFFSET:0x0003e950, SIZE:0x0000d362):
; - Public Definitions:
; js_EscapeMap
; js_NumCodeSpecs
; js_CodeSpec
; js_incop_str
; js_true_str
; js_false_str
; js_this_str
; js_null_str
; js_void_str
; js_typeof_str
; js_delete_str
; js_new_str
; js_ValueToSource
; js_DecompileScript
; js_DecompileCode
; js_DecompileFunction
; js_puts
; js_printf
; js_GetPrinterOutput
; js_DestroyPrinter
; js_NewPrinter
; js_EscapeString
; js_Disassemble1
; js_Disassemble
;
;00008:jsobj (OFFSET:0x0004bcb2, SIZE:0x000090a4):
; - Public Definitions:
; js_WithClass
; js_ObjectClass
; js_TryValueOf
; js_ValueToNonNullObject
; js_TryMethod
; js_ObjectToString
; js_SetClassPrototype
; js_DeleteProperty2
; js_DeleteProperty
; js_SetProperty
; js_GetProperty
; js_FindVariableScope
; js_FindVariable
; js_FindProperty
; js_LookupProperty
; js_DefineProperty
; js_FreeSlot
; js_AllocSlot
; js_FinalizeObject
; js_GetClassPrototype
; js_NewObject
; js_InitObjectClass
; js_ValueToObject
; js_obj_toString
; js_SetSlot
; js_GetSlot
;
;
;00009:jsnum (OFFSET:0x00054d56, SIZE:0x00004f29):
; - Public Definitions:
; js_ValueToInt32
; js_NumberToObject
; js_FinalizeDouble
; js_InitNumberClass
; js_NumberToString
; js_NewDoubleValue
; js_NewDouble
; js_ValueToNumber
;
;
;00010:jsmath (OFFSET:0x00059c7f, SIZE:0x000054b6):
; - Public Definitions:
; js_InitMathClass
;
;
;00011:jsjava (OFFSET:0x0005f135, SIZE:0x00022aad):
; - Public Definitions:
; js_Hooks
; MojaSrcLog
; finalizeTask
JSJ_FindCurrentJSContext
; JSJ_GetPrincipals
JSJ_IsSafeMethod
JSJ_InitContext
JSJ_Init
js_JSErrorToJException
js_JavaErrorReporter
js_RemoveReflection
js_ReflectJObjectToJSObject
js_convertJObjectToJSValue
js_convertJSValueToJObject
js_ReflectJSObjectToJObject
; js_ReflectJClassToJSObject
JSJ_ExitJS
JSJ_EnterJS
JSJ_CurrentContext
JSJ_IsEnabled
;added in GA code - DSR70297
JSJ_Finish
JSJ_IsCalledFromJava
js_GetJSPrincipalsFromJavaCaller
;
;
;00012:jsinterp (OFFSET:0x00081be2, SIZE:0x00012274):
; - Public Definitions:
; js_Call
; js_Interpret
; js_SetLocalVariable
; js_GetLocalVariable
; js_SetArgument
; js_GetArgument
; js_FlushPropertyCacheByProp
; js_FlushPropertyCache
;
;
;00013:jsgc (OFFSET:0x00093e56, SIZE:0x00004f8d):
; - Public Definitions:
; js_ForceGC
; js_UnlockGCThing
; js_LockGCThing
; js_GC
; js_AllocGCThing
; js_RemoveRoot
; js_AddRoot
; js_FinishGC
; js_InitGC
;
;
;00014:jsfun (OFFSET:0x00098de3, SIZE:0x0000977c):
; - Public Definitions:
; js_FunctionClass
; js_ClosureClass
; js_CallClass
; js_DefineFunction
; js_NewFunction
; js_InitCallAndClosureClasses
; js_InitFunctionClass
; js_ValueToFunction
; js_SetCallVariable
; js_GetCallVariable
; js_PutCallObject
; js_GetCallObject
;
;
;00015:jsemit (OFFSET:0x000a255f, SIZE:0x000077be):
; - Public Definitions:
; js_SrcNoteName
; js_SrcNoteArity
js_FinishTakingSrcNotes
; js_MoveSrcNotes
; js_GetSrcNoteOffset
; js_BumpSrcNoteDelta
; js_NewSrcNote3
; js_NewSrcNote2
; js_PopStatement
; js_EmitContinue
; js_EmitBreak
; js_SetSrcNoteOffset
; js_NewSrcNote
; js_PushStatement
; js_MoveCode
; js_SetJumpOffset
; js_Emit3
; js_Emit2
; js_Emit1
; js_UpdateDepth
; js_SrcNoteLength
; js_CancelLastOpcode
js_InitCodeGenerator
;
;
;00016:jsdbgapi (OFFSET:0x000a9d1d, SIZE:0x000057db):
; - Public Definitions:
; js_watchpoint_list
; js_trap_list
; JS_SetAnnotationInFrame
; JS_GetAnnotationFromFrame
; JS_GetJSPrincipalArrayFromFrame
; JS_NextJSFrame
; JS_InitJSFrameIterator
JS_LineNumberToPC
JS_PCToLineNumber
JS_ClearAllWatchPoints
JS_ClearWatchPoint
JS_SetWatchPoint
JS_HandleTrap
JS_ClearAllTraps
JS_ClearScriptTraps
JS_ClearTrap
JS_GetTrapOpcode
JS_SetTrap
;DSR070297 - added in GA code
JS_FrameIterator
JS_GetFrameAnnotation
JS_GetFramePrincipalArray
JS_GetFrameScript
JS_GetScriptFilename
JS_SetFrameAnnotation
JS_GetFramePC
JS_GetFunctionScript
;
;
;00017:jsdate (OFFSET:0x000af4f8, SIZE:0x00009a8e):
; - Public Definitions:
js_DateGetSeconds
js_DateGetMinutes
js_DateGetHours
js_DateGetDate
js_DateGetMonth
js_DateGetYear
js_NewDateObject
; js_InitDateClass
;
;
;00018:jscntxt (OFFSET:0x000b8f86, SIZE:0x00003732):
; - Public Definitions:
; js_InterpreterHooks
; js_ReportIsNotDefined
; js_ReportErrorAgain
; js_ReportErrorVA
; js_ContextIterator
; js_DestroyContext
; js_NewContext
; js_SetInterpreterHooks
;
;
;00019:jsbool (OFFSET:0x000bc6b8, SIZE:0x00003375):
; - Public Definitions:
; js_BooleanToString
; js_BooleanToObject
; js_InitBooleanClass
; js_ValueToBoolean
;
;
;00020:jsatom (OFFSET:0x000bfa2d, SIZE:0x000058d0):
; - Public Definitions:
; js_valueOf_str
; js_toString_str
; js_length_str
; js_eval_str
; js_constructor_str
; js_class_prototype_str
; js_assign_str
; js_anonymous_str
; js_Object_str
; js_Array_str
; js_type_str
; js_DropUnmappedAtoms
js_FreeAtomMap
js_InitAtomMap
; js_GetAtom
; js_DropAtom
; js_IndexAtom
; js_ValueToStringAtom
; js_AtomizeString
; js_AtomizeDouble
; js_AtomizeInt
; js_AtomizeBoolean
; js_AtomizeObject
; js_HoldAtom
; js_MarkAtomState
; js_FreeAtomState
; js_Atomize
; js_InitAtomState
;
;
;00021:jsarray (OFFSET:0x000c52fd, SIZE:0x00007c86):
; - Public Definitions:
; js_ArrayClass
; js_SetArrayLength
; js_GetArrayLength
; js_InitArrayClass
; js_NewArrayObject
; PR_qsort
;
;
;00022:jsapi (OFFSET:0x000ccf83, SIZE:0x0000de8c):
; - Public Definitions:
JS_ClearRegExpStatics
JS_SetRegExpInput
JS_NewRegExpObject
JS_SetErrorReporter
JS_CompareStrings
JS_GetStringLength
JS_GetStringBytes
JS_InternString
JS_NewStringCopyZ
JS_NewStringCopyN
JS_NewString
JS_IsRunning
JS_SetBranchCallback
JS_CallFunctionValue
JS_CallFunctionName
JS_CallFunction
JS_EvaluateScriptForPrincipals
JS_EvaluateScript
JS_ExecuteScript
JS_DecompileFunctionBody
JS_DecompileFunction
JS_DecompileScript
JS_CompileFunctionForPrincipals
JS_CompileFunction
JS_DestroyScript
JS_CompileScriptForPrincipals
JS_CompileScript
JS_DefineFunction
JS_GetFunctionName
JS_GetFunctionObject
JS_NewFunction
JS_ClearScope
JS_DeleteElement
JS_SetElement
JS_GetElement
JS_LookupElement
JS_AliasElement
JS_DefineElement
JS_SetArrayLength
JS_GetArrayLength
JS_NewArrayObject
JS_DeleteProperty
JS_SetProperty
JS_GetProperty
JS_LookupProperty
JS_AliasProperty
JS_DefinePropertyWithTinyId
JS_DefineProperty
JS_DefineConstDoubles
JS_DefineObject
JS_NewObject
JS_GetConstructor
JS_SetParent
JS_GetParent
JS_SetPrototype
JS_GetPrototype
JS_GetInstancePrivate
JS_SetPrivate
JS_GetPrivate
JS_InstanceOf
JS_GetClass
JS_DefineFunctions
JS_DefineProperties
JS_InitClass
JS_FinalizeStub
JS_ConvertStub
JS_ResolveStub
JS_EnumerateStub
JS_PropertyStub
JS_GC
JS_UnlockGCThing
JS_LockGCThing
JS_RemoveRoot
JS_AddRoot
JS_NewDoubleValue
JS_NewDouble
JS_strdup
JS_free
JS_realloc
JS_ReportOutOfMemory
JS_malloc
JS_GetScopeChain
JS_InitStandardClasses
JS_SetGlobalObject
JS_GetGlobalObject
JS_SetVersion
JS_GetVersion
JS_ContextIterator
JS_GetTaskState
JS_DestroyContext
JS_NewContext
JS_Unlock
JS_Lock
JS_Finish
JS_Init
JS_GetTypeName
JS_TypeOfValue
JS_ValueToBoolean
JS_ValueToInt32
JS_ValueToNumber
JS_ValueToString
JS_ValueToFunction
JS_ValueToObject
JS_ReportError
JS_ConvertValue
JS_GetEmptyStringValue
JS_GetPositiveInfinityValue
JS_GetNegativeInfinityValue
JS_GetNaNValue
;DSR062897 - added for GA code
JS_MaybeGC
JS_GetScriptPrincipals
JS_IsAssigning
JS_SetCharSetInfo
;
;
;00023:prmjtime (OFFSET:0x000dae0f, SIZE:0x00008986):
; - Public Definitions:
PRMJ_FormatTimeUSEnglish
PRMJ_gmtime
PRMJ_FormatTime
PRMJ_mktime
PRMJ_ComputeTime
PRMJ_localtime
PRMJ_ExplodeTime
PRMJ_ToLocal
PRMJ_ToGMT
PRMJ_NowLocal
PRMJ_DSTOffset
PRMJ_NowS
PRMJ_NowMS
PRMJ_Now
PRMJ_ToExtendedTime
PRMJ_ToBaseTime
PRMJ_setDST
PRMJ_LocalGMTDifference

View File

@@ -1,42 +0,0 @@
/* -*- Mode: C; tab-width: 8 -*-
* Copyright © 1996 Netscape Communications Corporation, All Rights Reserved.
*/
#include <stdio.h>
#include <stdlib.h>
#include "jsapi.h"
#include "jsinterp.h"
/* These functions are needed to get the addresses of certain functions
* in the JS module. On WIN32 especially, these symbols have a different
* address from the actual address of these functions in the JS module.
* This is because on WIN32, import function address fixups are done only
* at load time and function calls are made by indirection - that is by
* using a couple extra instructions to lookup the actual function address
* in the importing module's import address table.
*/
IMPLEMENT(JSPropertyOp)
js_GetArgumentAddress()
{
return ((void *)js_GetArgument);
}
IMPLEMENT(JSPropertyOp)
js_SetArgumentAddress()
{
return ((void *)js_SetArgument);
}
IMPLEMENT(JSPropertyOp)
js_GetLocalVariableAddress()
{
return ((void *)js_GetLocalVariable);
}
IMPLEMENT(JSPropertyOp)
js_SetLocalVariableAddress()
{
return ((void *)js_SetLocalVariable);
}

View File

@@ -1,20 +0,0 @@
/* -*- Mode: C; tab-width: 8 -*-
* Copyright © 1996 Netscape Communications Corporation, All Rights Reserved.
*/
#ifndef jsaddr_h___
#define jsaddr_h___
EXTERN(JSPropertyOp)
js_GetArgumentAddress();
EXTERN(JSPropertyOp)
js_SetArgumentAddress();
EXTERN(JSPropertyOp)
js_GetLocalVariableAddress();
EXTERN(JSPropertyOp)
js_SetLocalVariableAddress();
#endif /* jsaddr_h___ */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,343 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* Lifetime-based fast allocation, inspired by much prior art, including
* "Fast Allocation and Deallocation of Memory Based on Object Lifetimes"
* David R. Hanson, Software -- Practice and Experience, Vol. 20(1).
*/
#include "jsstddef.h"
#include <stdlib.h>
#include <string.h>
#include "jstypes.h"
#include "jsbit.h"
#ifndef NSPR20
#include "jsarena.h"
#else
/* Removed by JSIFY: #include "plarena.h"
*/
#include "jsarena.h" /* Added by JSIFY */
#endif
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#ifdef JS_THREADSAFE
extern js_CompareAndSwap(jsword *, jsword, jsword);
#endif
static JSArena *arena_freelist;
#ifdef JS_ARENAMETER
static JSArenaStats *arena_stats_list;
#define COUNT(pool,what) (pool)->stats.what++
#else
#define COUNT(pool,what) /* nothing */
#endif
#define JS_ARENA_DEFAULT_ALIGN sizeof(double)
IMPLEMENT(void)
JS_InitArenaPool(JSArenaPool *pool, const char *name, JSUint32 size, JSUint32 align)
{
if (align == 0)
align = JS_ARENA_DEFAULT_ALIGN;
pool->mask = JS_BITMASK(JS_CeilingLog2(align));
pool->first.next = NULL;
pool->first.base = pool->first.avail = pool->first.limit =
(jsuword)JS_ARENA_ALIGN(pool, &pool->first + 1);
pool->current = &pool->first;
pool->arenasize = size;
#ifdef JS_ARENAMETER
memset(&pool->stats, 0, sizeof pool->stats);
pool->stats.name = strdup(name);
pool->stats.next = arena_stats_list;
arena_stats_list = &pool->stats;
#endif
}
IMPLEMENT(void *)
JS_ArenaAllocate(JSArenaPool *pool, JSUint32 nb)
{
JSArena **ap, *a, *b;
#ifdef JS_THREADSAFE
JSArena *c;
#endif
JSUint32 sz;
void *p;
JS_ASSERT((nb & pool->mask) == 0);
#if defined(XP_PC) && !defined(_WIN32)
if (nb >= 60000U)
return 0;
#endif /* WIN16 */
ap = &arena_freelist;
for (a = pool->current; a->avail + nb > a->limit; pool->current = a) {
if (a->next) { /* move to next arena */
a = a->next;
continue;
}
while ((b = *ap) != NULL) { /* reclaim a free arena */
if (b->limit - b->base == pool->arenasize) {
#ifdef JS_THREADSAFE
do {
b = *ap;
c = b->next;
} while (!js_CompareAndSwap((jsword *)ap,(jsword)b,(jsword)c));
#else
*ap = b->next;
#endif
b->next = NULL;
a = a->next = b;
COUNT(pool, nreclaims);
goto claim;
}
ap = &b->next;
}
sz = JS_MAX(pool->arenasize, nb); /* allocate a new arena */
sz += sizeof *a + pool->mask; /* header and alignment slop */
b = malloc(sz);
if (!b)
return 0;
a = a->next = b;
a->next = NULL;
a->limit = (jsuword)a + sz;
JS_COUNT_ARENA(pool,++);
COUNT(pool, nmallocs);
claim:
a->base = a->avail = (jsuword)JS_ARENA_ALIGN(pool, a + 1);
}
p = (void *)a->avail;
a->avail += nb;
return p;
}
IMPLEMENT(void *)
JS_ArenaGrow(JSArenaPool *pool, void *p, JSUint32 size, JSUint32 incr)
{
void *newp;
JS_ARENA_ALLOCATE(newp, pool, size + incr);
memcpy(newp, p, size);
return newp;
}
/*
* Free tail arenas linked after head, which may not be the true list head.
* Reset pool->current to point to head in case it pointed at a tail arena.
*/
static void
FreeArenaList(JSArenaPool *pool, JSArena *head, JSBool reallyFree)
{
JSArena **ap, *a;
#ifdef JS_THREADSAFE
JSArena *b;
#endif
ap = &head->next;
a = *ap;
if (!a)
return;
#ifdef DEBUG
do {
JS_ASSERT(a->base <= a->avail && a->avail <= a->limit);
a->avail = a->base;
JS_CLEAR_UNUSED(a);
} while ((a = a->next) != NULL);
a = *ap;
#endif
if (reallyFree) {
do {
*ap = a->next;
JS_CLEAR_ARENA(a);
JS_COUNT_ARENA(pool,--);
free(a);
} while ((a = *ap) != NULL);
} else {
/* Insert the whole arena chain at the front of the freelist. */
do {
ap = &(*ap)->next;
} while (*ap);
#ifdef JS_THREADSAFE
do {
*ap = b = arena_freelist;
} while (!js_CompareAndSwap((jsword*)&arena_freelist,(jsword)b,(jsword)a));
#else
*ap = arena_freelist;
arena_freelist = a;
#endif
head->next = NULL;
}
pool->current = head;
}
IMPLEMENT(void)
JS_ArenaRelease(JSArenaPool *pool, char *mark)
{
JSArena *a;
for (a = pool->first.next; a; a = a->next) {
if (JS_UPTRDIFF(mark, a) < JS_UPTRDIFF(a->avail, a)) {
a->avail = (jsuword)JS_ARENA_ALIGN(pool, mark);
FreeArenaList(pool, a, JS_TRUE);
return;
}
}
}
IMPLEMENT(void)
JS_FreeArenaPool(JSArenaPool *pool)
{
FreeArenaList(pool, &pool->first, JS_FALSE);
COUNT(pool, ndeallocs);
}
IMPLEMENT(void)
JS_FinishArenaPool(JSArenaPool *pool)
{
FreeArenaList(pool, &pool->first, JS_TRUE);
#ifdef JS_ARENAMETER
{
JSArenaStats *stats, **statsp;
if (pool->stats.name)
free(pool->stats.name);
for (statsp = &arena_stats_list; (stats = *statsp) != 0;
statsp = &stats->next) {
if (stats == &pool->stats) {
*statsp = stats->next;
return;
}
}
}
#endif
}
IMPLEMENT(void)
JS_CompactArenaPool(JSArenaPool *pool)
{
#if 0 /* XP_MAC */
JSArena *a = pool->first.next;
while (a) {
reallocSmaller(a, a->avail - (jsuword)a);
a->limit = a->avail;
a = a->next;
}
#endif
}
IMPLEMENT(void)
JS_ArenaFinish()
{
JSArena *a, *next;
#ifdef JS_THREADSAFE
while (arena_freelist) {
a = arena_freelist;
next = a->next;
if (js_CompareAndSwap((jsword*)&arena_freelist,(jsword)a,(jsword)next))
free(a);
}
#else
for (a = arena_freelist; a; a = next) {
next = a->next;
free(a);
}
arena_freelist = NULL;
#endif
}
#ifdef JS_ARENAMETER
IMPLEMENT(void)
JS_ArenaCountAllocation(JSArenaPool *pool, JSUint32 nb)
{
pool->stats.nallocs++;
pool->stats.nbytes += nb;
if (nb > pool->stats.maxalloc)
pool->stats.maxalloc = nb;
pool->stats.variance += nb * nb;
}
IMPLEMENT(void)
JS_ArenaCountInplaceGrowth(JSArenaPool *pool, JSUint32 size, JSUint32 incr)
{
pool->stats.ninplace++;
}
IMPLEMENT(void)
JS_ArenaCountGrowth(JSArenaPool *pool, JSUint32 size, JSUint32 incr)
{
pool->stats.ngrows++;
pool->stats.nbytes += incr;
pool->stats.variance -= size * size;
size += incr;
if (size > pool->stats.maxalloc)
pool->stats.maxalloc = size;
pool->stats.variance += size * size;
}
IMPLEMENT(void)
JS_ArenaCountRelease(JSArenaPool *pool, char *mark)
{
pool->stats.nreleases++;
}
IMPLEMENT(void)
JS_ArenaCountRetract(JSArenaPool *pool, char *mark)
{
pool->stats.nfastrels++;
}
#include <math.h>
#include <stdio.h>
IMPLEMENT(void)
JS_DumpArenaStats(FILE *fp)
{
JSArenaStats *stats;
double mean, variance;
for (stats = arena_stats_list; stats; stats = stats->next) {
if (stats->nallocs != 0) {
mean = (double)stats->nbytes / stats->nallocs;
variance = fabs(stats->variance / stats->nallocs - mean * mean);
} else {
mean = variance = 0;
}
fprintf(fp, "\n%s allocation statistics:\n", stats->name);
fprintf(fp, " number of arenas: %u\n", stats->narenas);
fprintf(fp, " number of allocations: %u\n", stats->nallocs);
fprintf(fp, " number of free arena reclaims: %u\n", stats->nreclaims);
fprintf(fp, " number of malloc calls: %u\n", stats->nmallocs);
fprintf(fp, " number of deallocations: %u\n", stats->ndeallocs);
fprintf(fp, " number of allocation growths: %u\n", stats->ngrows);
fprintf(fp, " number of in-place growths: %u\n", stats->ninplace);
fprintf(fp, "number of released allocations: %u\n", stats->nreleases);
fprintf(fp, " number of fast releases: %u\n", stats->nfastrels);
fprintf(fp, " total bytes allocated: %u\n", stats->nbytes);
fprintf(fp, " mean allocation size: %g\n", mean);
fprintf(fp, " standard deviation: %g\n", sqrt(variance));
fprintf(fp, " maximum allocation size: %u\n", stats->maxalloc);
}
}
#endif /* JS_ARENAMETER */

View File

@@ -1,246 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsarena_h___
#define jsarena_h___
/*
* Lifetime-based fast allocation, inspired by much prior art, including
* "Fast Allocation and Deallocation of Memory Based on Object Lifetimes"
* David R. Hanson, Software -- Practice and Experience, Vol. 20(1).
*
* Also supports LIFO allocation (JS_ARENA_MARK/JS_ARENA_RELEASE).
*/
#include <stdlib.h>
#include <string.h>
#include "jstypes.h"
#include "jscompat.h"
JS_BEGIN_EXTERN_C
typedef struct JSArena JSArena;
typedef struct JSArenaPool JSArenaPool;
struct JSArena {
JSArena *next; /* next arena for this lifetime */
jsuword base; /* aligned base address, follows this header */
jsuword limit; /* one beyond last byte in arena */
jsuword avail; /* points to next available byte */
};
#ifdef JS_ARENAMETER
typedef struct JSArenaStats JSArenaStats;
struct JSArenaStats {
JSArenaStats *next; /* next in arenaStats list */
char *name; /* name for debugging */
uint32 narenas; /* number of arenas in pool */
uint32 nallocs; /* number of JS_ARENA_ALLOCATE() calls */
uint32 nreclaims; /* number of reclaims from freeArenas */
uint32 nmallocs; /* number of malloc() calls */
uint32 ndeallocs; /* number of lifetime deallocations */
uint32 ngrows; /* number of JS_ARENA_GROW() calls */
uint32 ninplace; /* number of in-place growths */
uint32 nreleases; /* number of JS_ARENA_RELEASE() calls */
uint32 nfastrels; /* number of "fast path" releases */
size_t nbytes; /* total bytes allocated */
size_t maxalloc; /* maximum allocation size in bytes */
double variance; /* size variance accumulator */
};
#endif
struct JSArenaPool {
JSArena first; /* first arena in pool list */
JSArena *current; /* arena from which to allocate space */
size_t arenasize; /* net exact size of a new arena */
jsuword mask; /* alignment mask (power-of-2 - 1) */
#ifdef JS_ARENAMETER
JSArenaStats stats;
#endif
};
/*
* If the including .c file uses only one power-of-2 alignment, it may define
* JS_ARENA_CONST_ALIGN_MASK to the alignment mask and save a few instructions
* per ALLOCATE and GROW.
*/
#ifdef JS_ARENA_CONST_ALIGN_MASK
#define JS_ARENA_ALIGN(pool, n) (((jsuword)(n) + JS_ARENA_CONST_ALIGN_MASK) \
& ~JS_ARENA_CONST_ALIGN_MASK)
#define JS_INIT_ARENA_POOL(pool, name, size) \
JS_InitArenaPool(pool, name, size, JS_ARENA_CONST_ALIGN_MASK + 1)
#else
#define JS_ARENA_ALIGN(pool, n) (((jsuword)(n) + (pool)->mask) & ~(pool)->mask)
#endif
#define JS_ARENA_ALLOCATE(p, pool, nb) \
JS_BEGIN_MACRO \
JSArena *_a = (pool)->current; \
size_t _nb = JS_ARENA_ALIGN(pool, nb); \
jsuword _p = _a->avail; \
jsuword _q = _p + _nb; \
if (_q > _a->limit) \
_p = (jsuword)JS_ArenaAllocate(pool, _nb); \
else \
_a->avail = _q; \
p = (void *)_p; \
JS_ArenaCountAllocation(pool, nb); \
JS_END_MACRO
#define JS_ARENA_GROW(p, pool, size, incr) \
JS_BEGIN_MACRO \
JSArena *_a = (pool)->current; \
size_t _incr = JS_ARENA_ALIGN(pool, incr); \
jsuword _p = _a->avail; \
jsuword _q = _p + _incr; \
if (_p == (jsuword)(p) + JS_ARENA_ALIGN(pool, size) && \
_q <= _a->limit) { \
_a->avail = _q; \
JS_ArenaCountInplaceGrowth(pool, size, incr); \
} else { \
p = JS_ArenaGrow(pool, p, size, incr); \
} \
JS_ArenaCountGrowth(pool, size, incr); \
JS_END_MACRO
#define JS_ARENA_MARK(pool) ((void *) (pool)->current->avail)
#define JS_UPTRDIFF(p,q) ((jsuword)(p) - (jsuword)(q))
#ifdef DEBUG
#define free_PATTERN 0xDA
#define JS_CLEAR_UNUSED(a) (JS_ASSERT((a)->avail <= (a)->limit), \
memset((void*)(a)->avail, free_PATTERN, \
(a)->limit - (a)->avail))
#define JS_CLEAR_ARENA(a) memset((void*)(a), free_PATTERN, \
(a)->limit - (jsuword)(a))
#else
#define JS_CLEAR_UNUSED(a) /* nothing */
#define JS_CLEAR_ARENA(a) /* nothing */
#endif
#define JS_ARENA_RELEASE(pool, mark) \
JS_BEGIN_MACRO \
char *_m = (char *)(mark); \
JSArena *_a = (pool)->current; \
if (JS_UPTRDIFF(_m, _a) <= JS_UPTRDIFF(_a->avail, _a)) { \
_a->avail = (jsuword)JS_ARENA_ALIGN(pool, _m); \
JS_CLEAR_UNUSED(_a); \
JS_ArenaCountRetract(pool, _m); \
} else { \
JS_ArenaRelease(pool, _m); \
} \
JS_ArenaCountRelease(pool, _m); \
JS_END_MACRO
#ifdef JS_ARENAMETER
#define JS_COUNT_ARENA(pool,op) ((pool)->stats.narenas op)
#else
#define JS_COUNT_ARENA(pool,op)
#endif
#define JS_ARENA_DESTROY(pool, a, pnext) \
JS_BEGIN_MACRO \
JS_COUNT_ARENA(pool,--); \
if ((pool)->current == (a)) (pool)->current = &(pool)->first; \
*(pnext) = (a)->next; \
JS_CLEAR_ARENA(a); \
free(a); \
(a) = NULL; \
JS_END_MACRO
/*
* Initialize an arena pool with the given name for debugging and metering,
* with a minimum size per arena of size bytes.
*/
EXTERN(void)
JS_InitArenaPool(JSArenaPool *pool, const char *name, JSUint32 size,
JSUint32 align);
/*
* Free the arenas in pool. The user may continue to allocate from pool
* after calling this function. There is no need to call JS_InitArenaPool()
* again unless JS_FinishArenaPool(pool) has been called.
*/
EXTERN(void)
JS_FreeArenaPool(JSArenaPool *pool);
/*
* Free the arenas in pool and finish using it altogether.
*/
EXTERN(void)
JS_FinishArenaPool(JSArenaPool *pool);
/*
* Compact all of the arenas in a pool so that no space is wasted.
*/
EXTERN(void)
JS_CompactArenaPool(JSArenaPool *pool);
/*
* Finish using arenas, freeing all memory associated with them.
*/
EXTERN(void)
JS_ArenaFinish(void);
/*
* Friend functions used by the JS_ARENA_*() macros.
*/
EXTERN(void *)
JS_ArenaAllocate(JSArenaPool *pool, JSUint32 nb);
EXTERN(void *)
JS_ArenaGrow(JSArenaPool *pool, void *p, JSUint32 size, JSUint32 incr);
EXTERN(void)
JS_ArenaRelease(JSArenaPool *pool, char *mark);
#ifdef JS_ARENAMETER
#include <stdio.h>
EXTERN(void)
JS_ArenaCountAllocation(JSArenaPool *pool, JSUint32 nb);
EXTERN(void)
JS_ArenaCountInplaceGrowth(JSArenaPool *pool, JSUint32 size, JSUint32 incr);
EXTERN(void)
JS_ArenaCountGrowth(JSArenaPool *pool, JSUint32 size, JSUint32incr);
EXTERN(void)
JS_ArenaCountRelease(JSArenaPool *pool, char *mark);
EXTERN(void)
JS_ArenaCountRetract(JSArenaPool *pool, char *mark);
EXTERN(void)
JS_DumpArenaStats(FILE *fp);
#else /* !JS_ARENAMETER */
#define JS_ArenaCountAllocation(ap, nb) /* nothing */
#define JS_ArenaCountInplaceGrowth(ap, size, incr) /* nothing */
#define JS_ArenaCountGrowth(ap, size, incr) /* nothing */
#define JS_ArenaCountRelease(ap, mark) /* nothing */
#define JS_ArenaCountRetract(ap, mark) /* nothing */
#endif /* !JS_ARENAMETER */
JS_END_EXTERN_C
#endif /* jsarena_h___ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,56 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsarray_h___
#define jsarray_h___
/*
* JS Array interface.
*/
#include "jsprvtd.h"
#include "jspubtd.h"
JS_BEGIN_EXTERN_C
extern JSClass js_ArrayClass;
extern JSObject *
js_InitArrayClass(JSContext *cx, JSObject *obj);
extern JSObject *
js_NewArrayObject(JSContext *cx, jsuint length, jsval *vector);
extern JSBool
js_GetLengthProperty(JSContext *cx, JSObject *obj, jsuint *lengthp);
extern JSBool
js_SetLengthProperty(JSContext *cx, JSObject *obj, jsuint length);
extern JSBool
js_HasLengthProperty(JSContext *cx, JSObject *obj, jsuint *lengthp);
/*
* JS-specific qsort function.
*/
typedef int (*JSComparator)(const void *a, const void *b, void *arg);
extern JSBool
js_qsort(void *vec, size_t nel, size_t elsize, JSComparator cmp, void *arg);
JS_END_EXTERN_C
#endif /* jsarray_h___ */

View File

@@ -1,672 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS atom table.
*/
#include "jsstddef.h"
#include <stdlib.h>
#include <string.h>
#include "jstypes.h"
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#ifndef NSPR20
#include "jshash.h"
#else
/* Removed by JSIFY: #include "JShash.h"
*/
#include "jshash.h" /* Added by JSIFY */
#endif
#include "jsprf.h"
#include "jsapi.h"
#include "jsatom.h"
#include "jscntxt.h"
#include "jsgc.h"
#include "jslock.h"
#include "jsnum.h"
#include "jsopcode.h"
#include "jsstr.h"
/*
* Keep this in sync with jspubtd.h -- an assertion below will insist that
* its length match the JSType enum's JSTYPE_LIMIT limit value.
*/
char *js_type_str[] = {
"undefined",
"object",
"function",
"string",
"number",
"boolean",
};
char *js_boolean_str[] = {
js_false_str,
js_true_str
};
char js_Array_str[] = "Array";
char js_Math_str[] = "Math";
char js_Object_str[] = "Object";
char js_anonymous_str[] = "anonymous";
char js_arguments_str[] = "arguments";
char js_arity_str[] = "arity";
char js_assign_str[] = "assign";
char js_callee_str[] = "callee";
char js_caller_str[] = "caller";
char js_class_prototype_str[] = "prototype";
char js_constructor_str[] = "constructor";
char js_count_str[] = "__count__";
char js_eval_str[] = "eval";
char js_index_str[] = "index";
char js_input_str[] = "input";
char js_length_str[] = "length";
char js_name_str[] = "name";
char js_parent_str[] = "__parent__";
char js_proto_str[] = "__proto__";
char js_toSource_str[] = "toSource";
char js_toString_str[] = "toString";
char js_valueOf_str[] = "valueOf";
#define HASH_OBJECT(o) ((JSHashNumber)(o) >> JSVAL_TAGBITS)
#define HASH_INT(i) ((JSHashNumber)(i))
#define HASH_DOUBLE(dp) ((JSHashNumber)(((uint32*)(dp))[0] ^ ((uint32*)(dp))[1]))
#define HASH_BOOLEAN(b) ((JSHashNumber)(b))
STATIC_DLL_CALLBACK(JSHashNumber)
js_hash_atom_key(const void *key)
{
jsval v;
jsdouble *dp;
/* Order JSVAL_IS_* tests by likelihood of success. */
v = (jsval)key;
if (JSVAL_IS_STRING(v))
return js_HashString(JSVAL_TO_STRING(v));
if (JSVAL_IS_INT(v))
return HASH_INT(JSVAL_TO_INT(v));
if (JSVAL_IS_DOUBLE(v)) {
dp = JSVAL_TO_DOUBLE(v);
return HASH_DOUBLE(dp);
}
if (JSVAL_IS_OBJECT(v))
return HASH_OBJECT(JSVAL_TO_OBJECT(v));
if (JSVAL_IS_BOOLEAN(v))
return HASH_BOOLEAN(JSVAL_TO_BOOLEAN(v));
return (JSHashNumber)v;
}
STATIC_DLL_CALLBACK(intN)
js_compare_atom_keys(const void *k1, const void *k2)
{
jsval v1, v2;
v1 = (jsval)k1, v2 = (jsval)k2;
if (JSVAL_IS_STRING(v1) && JSVAL_IS_STRING(v2))
return !js_CompareStrings(JSVAL_TO_STRING(v1), JSVAL_TO_STRING(v2));
if (JSVAL_IS_DOUBLE(v1) && JSVAL_IS_DOUBLE(v2)) {
double d1 = *JSVAL_TO_DOUBLE(v1);
double d2 = *JSVAL_TO_DOUBLE(v2);
if (JSDOUBLE_IS_NaN(d1))
return JSDOUBLE_IS_NaN(d2);
#ifdef XP_PC
/* XXX MSVC miscompiles such that (NaN == 0) */
if (JSDOUBLE_IS_NaN(d2))
return JS_FALSE;
#endif
return d1 == d2;
}
return v1 == v2;
}
STATIC_DLL_CALLBACK(int)
js_compare_stub(const void *v1, const void *v2)
{
return 1;
}
STATIC_DLL_CALLBACK(void *)
js_alloc_atom_space(void *priv, size_t size)
{
return malloc(size);
}
STATIC_DLL_CALLBACK(void)
js_free_atom_space(void *priv, void *item)
{
free(item);
}
STATIC_DLL_CALLBACK(JSHashEntry *)
js_alloc_atom(void *priv, const void *key)
{
JSAtomState *state = priv;
JSAtom *atom;
atom = malloc(sizeof(JSAtom));
if (!atom)
return NULL;
#ifdef JS_THREADSAFE
state->tablegen++;
#endif
atom->entry.key = key;
atom->entry.value = NULL;
atom->flags = 0;
atom->kwindex = -1;
atom->number = state->number++;
return &atom->entry;
}
STATIC_DLL_CALLBACK(void)
js_free_atom(void *priv, JSHashEntry *he, uintN flag)
{
if (flag != HT_FREE_ENTRY)
return;
#ifdef JS_THREADSAFE
((JSAtomState *)priv)->tablegen++;
#endif
free(he);
}
static JSHashAllocOps atom_alloc_ops = {
js_alloc_atom_space, js_free_atom_space,
js_alloc_atom, js_free_atom
};
#define JS_ATOM_HASH_SIZE 1024
JSBool
js_InitAtomState(JSContext *cx, JSAtomState *state)
{
uintN i;
state->runtime = cx->runtime;
state->number = 0;
state->table = JS_NewHashTable(JS_ATOM_HASH_SIZE, js_hash_atom_key,
js_compare_atom_keys, js_compare_stub,
&atom_alloc_ops, state);
if (!state->table) {
JS_ReportOutOfMemory(cx);
return JS_FALSE;
}
#ifdef JS_THREADSAFE
js_NewLock(&state->lock);
state->tablegen = 0;
#endif
#define FROB(lval,str) { \
if (!(state->lval = js_Atomize(cx, str, strlen(str), ATOM_PINNED))) { \
js_FreeAtomState(cx, state); \
return JS_FALSE; \
} \
}
JS_ASSERT(sizeof js_type_str / sizeof js_type_str[0] == JSTYPE_LIMIT);
for (i = 0; i < JSTYPE_LIMIT; i++)
FROB(typeAtoms[i], js_type_str[i]);
FROB(booleanAtoms[0], js_false_str);
FROB(booleanAtoms[1], js_true_str);
FROB(nullAtom, js_null_str);
FROB(ArrayAtom, js_Array_str);
FROB(MathAtom, js_Math_str);
FROB(ObjectAtom, js_Object_str);
FROB(anonymousAtom, js_anonymous_str);
FROB(argumentsAtom, js_arguments_str);
FROB(arityAtom, js_arity_str);
FROB(assignAtom, js_assign_str);
FROB(calleeAtom, js_callee_str);
FROB(callerAtom, js_caller_str);
FROB(classPrototypeAtom, js_class_prototype_str);
FROB(constructorAtom, js_constructor_str);
FROB(countAtom, js_count_str);
FROB(indexAtom, js_index_str);
FROB(inputAtom, js_input_str);
FROB(lengthAtom, js_length_str);
FROB(nameAtom, js_name_str);
FROB(parentAtom, js_parent_str);
FROB(protoAtom, js_proto_str);
FROB(toSourceAtom, js_toSource_str);
FROB(toStringAtom, js_toString_str);
FROB(valueOfAtom, js_valueOf_str);
#undef FROB
return JS_TRUE;
}
void
js_FreeAtomState(JSContext *cx, JSAtomState *state)
{
state->runtime = NULL;
JS_HashTableDestroy(state->table);
state->table = NULL;
state->number = 0;
#ifdef JS_THREADSAFE
js_DestroyLock(&state->lock);
#endif
}
typedef struct MarkArgs {
JSRuntime *runtime;
JSGCThingMarker mark;
} MarkArgs;
STATIC_DLL_CALLBACK(intN)
js_atom_marker(JSHashEntry *he, intN i, void *arg)
{
JSAtom *atom;
jsval key;
MarkArgs *args;
atom = (JSAtom *)he;
if (atom->flags & ATOM_PINNED) {
atom->flags |= ATOM_MARK;
key = ATOM_KEY(atom);
if (JSVAL_IS_GCTHING(key)) {
args = arg;
args->mark(args->runtime, JSVAL_TO_GCTHING(key));
}
}
return HT_ENUMERATE_NEXT;
}
void
js_MarkAtomState(JSAtomState *state, JSGCThingMarker mark)
{
MarkArgs args;
args.runtime = state->runtime;
args.mark = mark;
JS_HashTableEnumerateEntries(state->table, js_atom_marker, &args);
}
STATIC_DLL_CALLBACK(intN)
js_atom_sweeper(JSHashEntry *he, intN i, void *arg)
{
JSAtom *atom;
atom = (JSAtom *)he;
if (atom->flags & ATOM_MARK) {
atom->flags &= ~ATOM_MARK;
return HT_ENUMERATE_NEXT;
}
JS_ASSERT((atom->flags & ATOM_PINNED) == 0);
atom->entry.key = NULL;
atom->flags = 0;
return HT_ENUMERATE_REMOVE;
}
void
js_SweepAtomState(JSAtomState *state)
{
JS_HashTableEnumerateEntries(state->table, js_atom_sweeper, NULL);
}
STATIC_DLL_CALLBACK(intN)
js_atom_unpinner(JSHashEntry *he, intN i, void *arg)
{
JSAtom *atom;
atom = (JSAtom *)he;
atom->flags &= ~ATOM_PINNED;
return HT_ENUMERATE_NEXT;
}
void
js_UnpinPinnedAtoms(JSAtomState *state)
{
JS_HashTableEnumerateEntries(state->table, js_atom_unpinner, NULL);
}
static JSAtom *
js_AtomizeHashedKey(JSContext *cx, jsval key, JSHashNumber keyHash, uintN flags)
{
JSAtomState *state;
JSHashTable *table;
JSHashEntry *he, **hep;
JSAtom *atom;
state = &cx->runtime->atomState;
JS_LOCK(&state->lock,cx);
table = state->table;
hep = JS_HashTableRawLookup(table, keyHash, (void *)key);
if ((he = *hep) == NULL) {
he = JS_HashTableRawAdd(table, hep, keyHash, (void *)key, NULL);
if (!he) {
JS_ReportOutOfMemory(cx);
atom = NULL;
goto out;
}
}
atom = (JSAtom *)he;
atom->flags |= flags;
out:
JS_UNLOCK(&state->lock,cx);
return atom;
}
JSAtom *
js_AtomizeObject(JSContext *cx, JSObject *obj, uintN flags)
{
jsval key;
JSHashNumber keyHash;
/* XXX must be set in the following order or MSVC1.52 will crash */
keyHash = HASH_OBJECT(obj);
key = OBJECT_TO_JSVAL(obj);
return js_AtomizeHashedKey(cx, key, keyHash, flags);
}
JSAtom *
js_AtomizeBoolean(JSContext *cx, JSBool b, uintN flags)
{
jsval key;
JSHashNumber keyHash;
key = BOOLEAN_TO_JSVAL(b);
keyHash = HASH_BOOLEAN(b);
return js_AtomizeHashedKey(cx, key, keyHash, flags);
}
JSAtom *
js_AtomizeInt(JSContext *cx, jsint i, uintN flags)
{
jsval key;
JSHashNumber keyHash;
key = INT_TO_JSVAL(i);
keyHash = HASH_INT(i);
return js_AtomizeHashedKey(cx, key, keyHash, flags);
}
JSAtom *
js_AtomizeDouble(JSContext *cx, jsdouble d, uintN flags)
{
jsdouble *dp;
JSHashNumber keyHash;
jsval key;
JSAtomState *state;
JSHashTable *table;
JSHashEntry *he, **hep;
JSAtom *atom;
#if JS_ALIGN_OF_DOUBLE == 8
dp = &d;
#else
char alignbuf[16];
dp = (jsdouble *)&alignbuf[8 - ((jsuword)&alignbuf & 7)];
*dp = d;
#endif
keyHash = HASH_DOUBLE(dp);
key = DOUBLE_TO_JSVAL(dp);
state = &cx->runtime->atomState;
JS_LOCK(&state->lock,cx);
table = state->table;
hep = JS_HashTableRawLookup(table, keyHash, (void *)key);
if ((he = *hep) == NULL) {
#ifdef JS_THREADSAFE
uint32 gen = state->tablegen;
#endif
JS_UNLOCK(&state->lock,cx);
if (!js_NewDoubleValue(cx, d, &key))
return NULL;
JS_LOCK(&state->lock,cx);
#ifdef JS_THREADSAFE
if (state->tablegen != gen) {
hep = JS_HashTableRawLookup(table, keyHash, (void *)key);
if ((he = *hep) != NULL) {
atom = (JSAtom *)he;
goto out;
}
}
#endif
he = JS_HashTableRawAdd(table, hep, keyHash, (void *)key, NULL);
if (!he) {
JS_ReportOutOfMemory(cx);
atom = NULL;
goto out;
}
}
atom = (JSAtom *)he;
atom->flags |= flags;
out:
JS_UNLOCK(&state->lock,cx);
return atom;
}
JSAtom *
js_AtomizeString(JSContext *cx, JSString *str, uintN flags)
{
JSHashNumber keyHash;
jsval key;
JSAtomState *state;
JSHashTable *table;
JSHashEntry *he, **hep;
JSAtom *atom;
keyHash = js_HashString(str);
key = STRING_TO_JSVAL(str);
state = &cx->runtime->atomState;
JS_LOCK(&state->lock,cx);
table = state->table;
hep = JS_HashTableRawLookup(table, keyHash, (void *)key);
if ((he = *hep) == NULL) {
if (flags & ATOM_TMPSTR) {
#ifdef JS_THREADSAFE
uint32 gen = state->tablegen;
#endif
JS_UNLOCK(&state->lock,cx);
flags &= ~ATOM_TMPSTR;
if (flags & ATOM_NOCOPY) {
flags &= ~ATOM_NOCOPY;
str = js_NewString(cx, str->chars, str->length, 0);
} else {
str = js_NewStringCopyN(cx, str->chars, str->length, 0);
}
if (!str)
return NULL;
key = STRING_TO_JSVAL(str);
JS_LOCK(&state->lock,cx);
#ifdef JS_THREADSAFE
if (state->tablegen != gen) {
hep = JS_HashTableRawLookup(table, keyHash, (void *)key);
if ((he = *hep) != NULL) {
atom = (JSAtom *)he;
goto out;
}
}
#endif
}
he = JS_HashTableRawAdd(table, hep, keyHash, (void *)key, NULL);
if (!he) {
JS_ReportOutOfMemory(cx);
atom = NULL;
goto out;
}
}
atom = (JSAtom *)he;
atom->flags |= flags;
out:
JS_UNLOCK(&state->lock,cx);
return atom;
}
JS_FRIEND_API(JSAtom *)
js_Atomize(JSContext *cx, const char *bytes, size_t length, uintN flags)
{
jschar *chars;
JSString *str;
JSAtom *atom;
#if JS_ALIGN_OF_DOUBLE == 8
union { jsdouble d; JSString s; } u;
str = &u.s;
#else
char alignbuf[16];
str = (JSString *)&alignbuf[8 - ((jsuword)&alignbuf & 7)];
#endif
chars = js_InflateString(cx, bytes, length);
if (!chars)
return NULL;
str->chars = chars;
str->length = length;
atom = js_AtomizeString(cx, str, ATOM_TMPSTR | ATOM_NOCOPY | flags);
if (!atom || ATOM_TO_STRING(atom)->chars != chars)
JS_free(cx, chars);
return atom;
}
JS_FRIEND_API(JSAtom *)
js_AtomizeChars(JSContext *cx, const jschar *chars, size_t length, uintN flags)
{
JSString *str;
#if JS_ALIGN_OF_DOUBLE == 8
union { jsdouble d; JSString s; } u;
str = &u.s;
#else
char alignbuf[16];
str = (JSString *)&alignbuf[8 - ((jsuword)&alignbuf & 7)];
#endif
str->chars = (jschar *)chars;
str->length = length;
return js_AtomizeString(cx, str, ATOM_TMPSTR | flags);
}
JSAtom *
js_AtomizeValue(JSContext *cx, jsval value, uintN flags)
{
if (JSVAL_IS_STRING(value))
return js_AtomizeString(cx, JSVAL_TO_STRING(value), flags);
if (JSVAL_IS_INT(value))
return js_AtomizeInt(cx, JSVAL_TO_INT(value), flags);
if (JSVAL_IS_DOUBLE(value))
return js_AtomizeDouble(cx, *JSVAL_TO_DOUBLE(value), flags);
if (JSVAL_IS_OBJECT(value))
return js_AtomizeObject(cx, JSVAL_TO_OBJECT(value), flags);
if (JSVAL_IS_BOOLEAN(value))
return js_AtomizeBoolean(cx, JSVAL_TO_BOOLEAN(value), flags);
return js_AtomizeHashedKey(cx, value, (JSHashNumber)value, flags);
}
JSAtom *
js_ValueToStringAtom(JSContext *cx, jsval v)
{
JSString *str;
str = js_ValueToString(cx, v);
if (!str)
return NULL;
return js_AtomizeString(cx, str, 0);
}
JSAtomListElement *
js_IndexAtom(JSContext *cx, JSAtom *atom, JSAtomList *al)
{
JSAtomListElement *ale;
ATOM_LIST_SEARCH(ale, al, atom);
if (!ale) {
JS_ARENA_ALLOCATE(ale, &cx->tempPool, sizeof(JSAtomListElement));
if (!ale) {
JS_ReportOutOfMemory(cx);
return NULL;
}
ale->atom = atom;
ale->index = (jsatomid) al->count++;
ale->next = al->list;
al->list = ale;
}
return ale;
}
JS_FRIEND_API(JSAtom *)
js_GetAtom(JSContext *cx, JSAtomMap *map, jsatomid i)
{
JSAtom *atom;
JS_ASSERT(map->vector && i < map->length);
if (!map->vector || i >= map->length) {
char numBuf[12];
JS_snprintf(numBuf, sizeof numBuf, "%lu", (unsigned long)i);
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
JSMSG_BAD_ATOMIC_NUMBER, numBuf);
return NULL;
}
atom = map->vector[i];
JS_ASSERT(atom);
return atom;
}
JS_FRIEND_API(JSBool)
js_InitAtomMap(JSContext *cx, JSAtomMap *map, JSAtomList *al)
{
JSAtom **vector;
JSAtomListElement *ale, *next;
uint32 count;
ale = al->list;
if (!ale) {
map->vector = NULL;
map->length = 0;
return JS_TRUE;
}
count = al->count;
if (count >= ATOM_INDEX_LIMIT) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
JSMSG_TOO_MANY_LITERALS);
return JS_FALSE;
}
vector = JS_malloc(cx, (size_t) count * sizeof *vector);
if (!vector)
return JS_FALSE;
do {
vector[ale->index] = ale->atom;
next = ale->next;
ale->next = NULL;
} while ((ale = next) != NULL);
al->list = NULL;
al->count = 0;
map->vector = vector;
map->length = (jsatomid)count;
return JS_TRUE;
}
JS_FRIEND_API(void)
js_FreeAtomMap(JSContext *cx, JSAtomMap *map)
{
if (map->vector) {
free(map->vector);
map->vector = NULL;
}
map->length = 0;
}

View File

@@ -1,278 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsatom_h___
#define jsatom_h___
/*
* JS atom table.
*/
#include <stddef.h>
#include "jstypes.h"
#ifndef NSPR20
#include "jshash.h"
#else
/* Removed by JSIFY: #include "JShash.h"
*/
#include "jshash.h" /* Added by JSIFY */
#endif
#include "jsapi.h"
#include "jsprvtd.h"
#include "jspubtd.h"
#ifdef JS_THREADSAFE
#include "jslock.h"
#endif
JS_BEGIN_EXTERN_C
#define ATOM_NOCOPY 0x01 /* don't copy atom string bytes */
#define ATOM_TMPSTR 0x02 /* internal, to avoid extra string */
#define ATOM_MARK 0x04 /* atom is reachable via GC */
#define ATOM_PINNED 0x08 /* atom is pinned against GC */
struct JSAtom {
JSHashEntry entry; /* key is jsval, value keyword info */
uint8 flags; /* flags, PINNED and/or MARK for now */
int8 kwindex; /* keyword index, -1 if not keyword */
jsatomid number; /* atom serial number and hash code */
};
#define ATOM_KEY(atom) ((jsval)(atom)->entry.key)
#define ATOM_IS_OBJECT(atom) JSVAL_IS_OBJECT(ATOM_KEY(atom))
#define ATOM_TO_OBJECT(atom) JSVAL_TO_OBJECT(ATOM_KEY(atom))
#define ATOM_IS_INT(atom) JSVAL_IS_INT(ATOM_KEY(atom))
#define ATOM_TO_INT(atom) JSVAL_TO_INT(ATOM_KEY(atom))
#define ATOM_IS_DOUBLE(atom) JSVAL_IS_DOUBLE(ATOM_KEY(atom))
#define ATOM_TO_DOUBLE(atom) JSVAL_TO_DOUBLE(ATOM_KEY(atom))
#define ATOM_IS_STRING(atom) JSVAL_IS_STRING(ATOM_KEY(atom))
#define ATOM_TO_STRING(atom) JSVAL_TO_STRING(ATOM_KEY(atom))
#define ATOM_IS_BOOLEAN(atom) JSVAL_IS_BOOLEAN(ATOM_KEY(atom))
#define ATOM_TO_BOOLEAN(atom) JSVAL_TO_BOOLEAN(ATOM_KEY(atom))
#define ATOM_BYTES(atom) JS_GetStringBytes(ATOM_TO_STRING(atom))
struct JSAtomListElement {
JSAtomListElement *next;
jsatomid index; /* index in script-specific atom map */
JSAtom *atom;
};
struct JSAtomList {
JSAtomListElement *list; /* literals indexed for mapping */
jsuint count; /* count of indexed literals */
};
#define ATOM_LIST_INIT(al) ((al)->list = NULL, (al)->count = 0)
#define ATOM_LIST_SEARCH(_ale,_al,_atom) \
JS_BEGIN_MACRO \
JSAtomListElement **_alep = &(_al)->list; \
while ((_ale = *_alep) != NULL) { \
if (_ale->atom == (_atom)) { \
/* Hit, move atom's element to the front of the list. */ \
*_alep = _ale->next; \
_ale->next = (_al)->list; \
(_al)->list = _ale; \
break; \
} \
_alep = &_ale->next; \
} \
JS_END_MACRO
struct JSAtomMap {
JSAtom **vector; /* array of ptrs to indexed atoms */
jsatomid length; /* count of (to-be-)indexed atoms */
};
struct JSAtomState {
JSRuntime *runtime; /* runtime that owns us */
JSHashTable *table; /* hash table containing all atoms */
jsatomid number; /* one beyond greatest atom number */
/* Type names and value literals. */
JSAtom *typeAtoms[JSTYPE_LIMIT];
JSAtom *booleanAtoms[2];
JSAtom *nullAtom;
/* Various built-in or commonly-used atoms. */
JSAtom *ArrayAtom;
JSAtom *MathAtom;
JSAtom *ObjectAtom;
JSAtom *anonymousAtom;
JSAtom *argumentsAtom;
JSAtom *arityAtom;
JSAtom *assignAtom;
JSAtom *calleeAtom;
JSAtom *callerAtom;
JSAtom *classPrototypeAtom;
JSAtom *constructorAtom;
JSAtom *countAtom;
JSAtom *indexAtom;
JSAtom *inputAtom;
JSAtom *lengthAtom;
JSAtom *nameAtom;
JSAtom *parentAtom;
JSAtom *protoAtom;
JSAtom *toSourceAtom;
JSAtom *toStringAtom;
JSAtom *valueOfAtom;
#ifdef JS_THREADSAFE
JSThinLock lock;
volatile uint32 tablegen;
#endif
};
/* Well-known predefined strings and their atoms. */
extern char *js_type_str[];
extern char *js_boolean_str[];
extern char js_Array_str[];
extern char js_Math_str[];
extern char js_Object_str[];
extern char js_anonymous_str[];
extern char js_arguments_str[];
extern char js_arity_str[];
extern char js_assign_str[];
extern char js_callee_str[];
extern char js_caller_str[];
extern char js_class_prototype_str[];
extern char js_constructor_str[];
extern char js_count_str[];
extern char js_eval_str[];
extern char js_index_str[];
extern char js_input_str[];
extern char js_length_str[];
extern char js_name_str[];
extern char js_parent_str[];
extern char js_proto_str[];
extern char js_toSource_str[];
extern char js_toString_str[];
extern char js_valueOf_str[];
/*
* Initialize atom state. Return true on success, false with an out of
* memory error report on failure.
*/
extern JSBool
js_InitAtomState(JSContext *cx, JSAtomState *state);
/*
* Free and clear atom state.
*/
extern void
js_FreeAtomState(JSContext *cx, JSAtomState *state);
/*
* Atom garbage collection hooks.
*/
typedef void
(*JSGCThingMarker)(JSRuntime *rt, void *thing);
extern void
js_MarkAtomState(JSAtomState *state, JSGCThingMarker mark);
extern void
js_SweepAtomState(JSAtomState *state);
extern void
js_UnpinPinnedAtoms(JSAtomState *state);
/*
* Find or create the atom for an object. If we create a new atom, give it the
* type indicated in flags. Return 0 on failure to allocate memory.
*/
extern JSAtom *
js_AtomizeObject(JSContext *cx, JSObject *obj, uintN flags);
/*
* Find or create the atom for a Boolean value. If we create a new atom, give
* it the type indicated in flags. Return 0 on failure to allocate memory.
*/
extern JSAtom *
js_AtomizeBoolean(JSContext *cx, JSBool b, uintN flags);
/*
* Find or create the atom for an integer value. If we create a new atom, give
* it the type indicated in flags. Return 0 on failure to allocate memory.
*/
extern JSAtom *
js_AtomizeInt(JSContext *cx, jsint i, uintN flags);
/*
* Find or create the atom for a double value. If we create a new atom, give
* it the type indicated in flags. Return 0 on failure to allocate memory.
*/
extern JSAtom *
js_AtomizeDouble(JSContext *cx, jsdouble d, uintN flags);
/*
* Find or create the atom for a string. If we create a new atom, give it the
* type indicated in flags. Return 0 on failure to allocate memory.
*/
extern JSAtom *
js_AtomizeString(JSContext *cx, JSString *str, uintN flags);
extern JS_FRIEND_API(JSAtom *)
js_Atomize(JSContext *cx, const char *bytes, size_t length, uintN flags);
extern JS_FRIEND_API(JSAtom *)
js_AtomizeChars(JSContext *cx, const jschar *chars, size_t length, uintN flags);
/*
* This variant handles all value tag types.
*/
extern JSAtom *
js_AtomizeValue(JSContext *cx, jsval value, uintN flags);
/*
* Convert v to an atomized string.
*/
extern JSAtom *
js_ValueToStringAtom(JSContext *cx, jsval v);
/*
* Assign atom an index and insert it on al.
*/
extern JSAtomListElement *
js_IndexAtom(JSContext *cx, JSAtom *atom, JSAtomList *al);
/*
* Get the atom with index i from map.
*/
extern JS_FRIEND_API(JSAtom *)
js_GetAtom(JSContext *cx, JSAtomMap *map, jsatomid i);
/*
* For all unmapped atoms recorded in al, add a mapping from the atom's index
* to its address. The GC must not run until all indexed atoms in atomLists
* have been mapped by scripts connected to live objects (Function and Script
* class objects have scripts as/in their private data -- the GC knows about
* these two classes).
*/
extern JS_FRIEND_API(JSBool)
js_InitAtomMap(JSContext *cx, JSAtomMap *map, JSAtomList *al);
/*
* Free map->vector and clear map.
*/
extern JS_FRIEND_API(void)
js_FreeAtomMap(JSContext *cx, JSAtomMap *map);
JS_END_EXTERN_C
#endif /* jsatom_h___ */

View File

@@ -1,92 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsbit_h___
#define jsbit_h___
#include "jstypes.h"
JS_BEGIN_EXTERN_C
/*
** A jsbitmap_t is a long integer that can be used for bitmaps
*/
typedef unsigned long jsbitmap_t;
#define JS_TEST_BIT(_map,_bit) \
((_map)[(_bit)>>JS_BITS_PER_LONG_LOG2] & (1L << ((_bit) & (JS_BITS_PER_LONG-1))))
#define JS_SET_BIT(_map,_bit) \
((_map)[(_bit)>>JS_BITS_PER_LONG_LOG2] |= (1L << ((_bit) & (JS_BITS_PER_LONG-1))))
#define JS_CLEAR_BIT(_map,_bit) \
((_map)[(_bit)>>JS_BITS_PER_LONG_LOG2] &= ~(1L << ((_bit) & (JS_BITS_PER_LONG-1))))
/*
** Compute the log of the least power of 2 greater than or equal to n
*/
EXTERN(JSIntn) JS_CeilingLog2(JSUint32 i);
/*
** Compute the log of the greatest power of 2 less than or equal to n
*/
EXTERN(JSIntn) JS_FloorLog2(JSUint32 i);
/*
** Macro version of JS_CeilingLog2: Compute the log of the least power of
** 2 greater than or equal to _n. The result is returned in _log2.
*/
#define JS_CEILING_LOG2(_log2,_n) \
JS_BEGIN_MACRO \
JSUint32 j_ = (JSUint32)(_n); \
(_log2) = 0; \
if ((j_) & ((j_)-1)) \
(_log2) += 1; \
if ((j_) >> 16) \
(_log2) += 16, (j_) >>= 16; \
if ((j_) >> 8) \
(_log2) += 8, (j_) >>= 8; \
if ((j_) >> 4) \
(_log2) += 4, (j_) >>= 4; \
if ((j_) >> 2) \
(_log2) += 2, (j_) >>= 2; \
if ((j_) >> 1) \
(_log2) += 1; \
JS_END_MACRO
/*
** Macro version of JS_FloorLog2: Compute the log of the greatest power of
** 2 less than or equal to _n. The result is returned in _log2.
**
** This is equivalent to finding the highest set bit in the word.
*/
#define JS_FLOOR_LOG2(_log2,_n) \
JS_BEGIN_MACRO \
JSUint32 j_ = (JSUint32)(_n); \
(_log2) = 0; \
if ((j_) >> 16) \
(_log2) += 16, (j_) >>= 16; \
if ((j_) >> 8) \
(_log2) += 8, (j_) >>= 8; \
if ((j_) >> 4) \
(_log2) += 4, (j_) >>= 4; \
if ((j_) >> 2) \
(_log2) += 2, (j_) >>= 2; \
if ((j_) >> 1) \
(_log2) += 1; \
JS_END_MACRO
JS_END_EXTERN_C
#endif /* jsbit_h___ */

View File

@@ -1,211 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS boolean implementation.
*/
#include "jsstddef.h"
#include "jstypes.h"
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#include "jsapi.h"
#include "jsatom.h"
#include "jsbool.h"
#include "jscntxt.h"
#include "jsconfig.h"
#include "jsinterp.h"
#include "jslock.h"
#include "jsnum.h"
#include "jsobj.h"
#include "jsstr.h"
static JSClass boolean_class = {
"Boolean",
JSCLASS_HAS_PRIVATE,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub
};
#if JS_HAS_TOSOURCE
#include "jsprf.h"
static JSBool
bool_toSource(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
jsval v;
char buf[32];
JSString *str;
if (!JS_InstanceOf(cx, obj, &boolean_class, argv))
return JS_FALSE;
v = OBJ_GET_SLOT(cx, obj, JSSLOT_PRIVATE);
if (!JSVAL_IS_BOOLEAN(v))
return js_obj_toSource(cx, obj, argc, argv, rval);
JS_snprintf(buf, sizeof buf, "(new %s(%s))",
boolean_class.name,
js_boolean_str[JSVAL_TO_BOOLEAN(v) ? 1 : 0]);
str = JS_NewStringCopyZ(cx, buf);
if (!str)
return JS_FALSE;
*rval = STRING_TO_JSVAL(str);
return JS_TRUE;
}
#endif
static JSBool
bool_toString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
jsval v;
JSAtom *atom;
JSString *str;
if (!JS_InstanceOf(cx, obj, &boolean_class, argv))
return JS_FALSE;
v = OBJ_GET_SLOT(cx, obj, JSSLOT_PRIVATE);
if (!JSVAL_IS_BOOLEAN(v))
return js_obj_toString(cx, obj, argc, argv, rval);
atom = cx->runtime->atomState.booleanAtoms[JSVAL_TO_BOOLEAN(v) ? 1 : 0];
str = ATOM_TO_STRING(atom);
if (!str)
return JS_FALSE;
*rval = STRING_TO_JSVAL(str);
return JS_TRUE;
}
static JSBool
bool_valueOf(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
if (!JS_InstanceOf(cx, obj, &boolean_class, argv))
return JS_FALSE;
*rval = OBJ_GET_SLOT(cx, obj, JSSLOT_PRIVATE);
return JS_TRUE;
}
static JSFunctionSpec boolean_methods[] = {
#if JS_HAS_TOSOURCE
{js_toSource_str, bool_toSource, 0},
#endif
{js_toString_str, bool_toString, 0},
{js_valueOf_str, bool_valueOf, 0},
{0}
};
#ifdef XP_MAC
#undef Boolean
#define Boolean js_Boolean
#endif
static JSBool
Boolean(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
JSBool b;
jsval bval;
if (argc != 0) {
if (!js_ValueToBoolean(cx, argv[0], &b))
return JS_FALSE;
bval = BOOLEAN_TO_JSVAL(b);
} else {
bval = JSVAL_FALSE;
}
if (!cx->fp->constructing) {
*rval = bval;
return JS_TRUE;
}
OBJ_SET_SLOT(cx, obj, JSSLOT_PRIVATE, bval);
return JS_TRUE;
}
JSObject *
js_InitBooleanClass(JSContext *cx, JSObject *obj)
{
JSObject *proto;
proto = JS_InitClass(cx, obj, NULL, &boolean_class, Boolean, 1,
NULL, boolean_methods, NULL, NULL);
if (!proto)
return NULL;
OBJ_SET_SLOT(cx, proto, JSSLOT_PRIVATE, JSVAL_FALSE);
return proto;
}
JSObject *
js_BooleanToObject(JSContext *cx, JSBool b)
{
JSObject *obj;
obj = js_NewObject(cx, &boolean_class, NULL, NULL);
if (!obj)
return NULL;
OBJ_SET_SLOT(cx, obj, JSSLOT_PRIVATE, BOOLEAN_TO_JSVAL(b));
return obj;
}
JSString *
js_BooleanToString(JSContext *cx, JSBool b)
{
return ATOM_TO_STRING(cx->runtime->atomState.booleanAtoms[b ? 1 : 0]);
}
JSBool
js_ValueToBoolean(JSContext *cx, jsval v, JSBool *bp)
{
JSBool b;
jsdouble d;
#if defined XP_PC && defined _MSC_VER &&_MSC_VER <= 800
/* MSVC1.5 coredumps */
if (!bp)
return JS_TRUE;
#endif
/* XXX this should be an if-else chain, but MSVC1.5 crashes if it is. */
if (JSVAL_IS_NULL(v) || JSVAL_IS_VOID(v)) {
/* Must return early to avoid falling thru to JSVAL_IS_OBJECT case. */
*bp = JS_FALSE;
return JS_TRUE;
}
if (JSVAL_IS_OBJECT(v)) {
if (!JSVERSION_IS_ECMA(cx->version)) {
if (!OBJ_DEFAULT_VALUE(cx, JSVAL_TO_OBJECT(v), JSTYPE_BOOLEAN, &v))
return JS_FALSE;
if (!JSVAL_IS_BOOLEAN(v))
v = JSVAL_TRUE; /* non-null object is true */
b = JSVAL_TO_BOOLEAN(v);
} else {
b = JS_TRUE;
}
}
if (JSVAL_IS_STRING(v)) {
b = JSVAL_TO_STRING(v)->length ? JS_TRUE : JS_FALSE;
}
if (JSVAL_IS_INT(v)) {
b = JSVAL_TO_INT(v) ? JS_TRUE : JS_FALSE;
}
if (JSVAL_IS_DOUBLE(v)) {
d = *JSVAL_TO_DOUBLE(v);
b = (!JSDOUBLE_IS_NaN(d) && d != 0) ? JS_TRUE : JS_FALSE;
}
if (JSVAL_IS_BOOLEAN(v)) {
b = JSVAL_TO_BOOLEAN(v);
}
*bp = b;
return JS_TRUE;
}

View File

@@ -1,41 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsbool_h___
#define jsbool_h___
/*
* JS boolean interface.
*/
JS_BEGIN_EXTERN_C
extern JSObject *
js_InitBooleanClass(JSContext *cx, JSObject *obj);
extern JSObject *
js_BooleanToObject(JSContext *cx, JSBool b);
extern JSString *
js_BooleanToString(JSContext *cx, JSBool b);
extern JSBool
js_ValueToBoolean(JSContext *cx, jsval v, JSBool *bp);
JS_END_EXTERN_C
#endif /* jsbool_h___ */

View File

@@ -1,121 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsclist_h___
#define jsclist_h___
#include "jstypes.h"
typedef struct JSCListStr JSCList;
/*
** Circular linked list
*/
struct JSCListStr {
JSCList *next;
JSCList *prev;
};
/*
** Insert element "_e" into the list, before "_l".
*/
#define JS_INSERT_BEFORE(_e,_l) \
JS_BEGIN_MACRO \
(_e)->next = (_l); \
(_e)->prev = (_l)->prev; \
(_l)->prev->next = (_e); \
(_l)->prev = (_e); \
JS_END_MACRO
/*
** Insert element "_e" into the list, after "_l".
*/
#define JS_INSERT_AFTER(_e,_l) \
JS_BEGIN_MACRO \
(_e)->next = (_l)->next; \
(_e)->prev = (_l); \
(_l)->next->prev = (_e); \
(_l)->next = (_e); \
JS_END_MACRO
/*
** Return the element following element "_e"
*/
#define JS_NEXT_LINK(_e) \
((_e)->next)
/*
** Return the element preceding element "_e"
*/
#define JS_PREV_LINK(_e) \
((_e)->prev)
/*
** Append an element "_e" to the end of the list "_l"
*/
#define JS_APPEND_LINK(_e,_l) JS_INSERT_BEFORE(_e,_l)
/*
** Insert an element "_e" at the head of the list "_l"
*/
#define JS_INSERT_LINK(_e,_l) JS_INSERT_AFTER(_e,_l)
/* Return the head/tail of the list */
#define JS_LIST_HEAD(_l) (_l)->next
#define JS_LIST_TAIL(_l) (_l)->prev
/*
** Remove the element "_e" from it's circular list.
*/
#define JS_REMOVE_LINK(_e) \
JS_BEGIN_MACRO \
(_e)->prev->next = (_e)->next; \
(_e)->next->prev = (_e)->prev; \
JS_END_MACRO
/*
** Remove the element "_e" from it's circular list. Also initializes the
** linkage.
*/
#define JS_REMOVE_AND_INIT_LINK(_e) \
JS_BEGIN_MACRO \
(_e)->prev->next = (_e)->next; \
(_e)->next->prev = (_e)->prev; \
(_e)->next = (_e); \
(_e)->prev = (_e); \
JS_END_MACRO
/*
** Return non-zero if the given circular list "_l" is empty, zero if the
** circular list is not empty
*/
#define JS_CLIST_IS_EMPTY(_l) \
((_l)->next == (_l))
/*
** Initialize a circular list
*/
#define JS_INIT_CLIST(_l) \
JS_BEGIN_MACRO \
(_l)->next = (_l); \
(_l)->prev = (_l); \
JS_END_MACRO
#define JS_INIT_STATIC_CLIST(_l) \
{(_l), (_l)}
#endif /* jsclist_h___ */

View File

@@ -1,400 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS execution context.
*/
#include "jsstddef.h"
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include "jstypes.h"
#ifndef NSPR20
#include "jsarena.h"
#else
/* Removed by JSIFY: #include "plarena.h"
*/
#include "jsarena.h" /* Added by JSIFY */
#endif
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#include "jsclist.h"
#include "jsprf.h"
#include "jsatom.h"
#include "jscntxt.h"
#include "jsconfig.h"
#include "jsdbgapi.h"
#include "jsexn.h"
#include "jsgc.h"
#include "jslock.h"
#include "jsobj.h"
#include "jsopcode.h"
#include "jsscan.h"
#include "jsscript.h"
JSContext *
js_NewContext(JSRuntime *rt, size_t stacksize)
{
JSContext *cx;
cx = malloc(sizeof *cx);
if (!cx)
return NULL;
memset(cx, 0, sizeof *cx);
cx->runtime = rt;
#ifdef JS_THREADSAFE
js_InitContextForLocking(cx);
#endif
if (rt->contextList.next == (JSCList *)&rt->contextList) {
/* First context on this runtime: initialize atoms and keywords. */
if (!js_InitAtomState(cx, &rt->atomState) ||
!js_InitScanner(cx)) {
free(cx);
return NULL;
}
}
/* Atomicly append cx to rt's context list. */
JS_LOCK_RUNTIME_VOID(rt, JS_APPEND_LINK(&cx->links, &rt->contextList));
cx->version = JSVERSION_DEFAULT;
cx->jsop_eq = JSOP_EQ;
cx->jsop_ne = JSOP_NE;
JS_InitArenaPool(&cx->stackPool, "stack", stacksize, sizeof(jsval));
JS_InitArenaPool(&cx->codePool, "code", 1024, sizeof(jsbytecode));
JS_InitArenaPool(&cx->tempPool, "temp", 1024, sizeof(jsdouble));
#if JS_HAS_REGEXPS
if (!js_InitRegExpStatics(cx, &cx->regExpStatics)) {
js_DestroyContext(cx);
return NULL;
}
#endif
return cx;
}
void
js_DestroyContext(JSContext *cx)
{
JSRuntime *rt;
JSBool rtempty;
rt = cx->runtime;
/* Remove cx from context list first. */
JS_LOCK_RUNTIME(rt);
JS_REMOVE_LINK(&cx->links);
rtempty = (rt->contextList.next == (JSCList *)&rt->contextList);
JS_UNLOCK_RUNTIME(rt);
if (rtempty) {
/* Unpin all pinned atoms before final GC. */
js_UnpinPinnedAtoms(&rt->atomState);
/* Unlock GC things held by runtime pointers. */
js_UnlockGCThing(cx, rt->jsNaN);
js_UnlockGCThing(cx, rt->jsNegativeInfinity);
js_UnlockGCThing(cx, rt->jsPositiveInfinity);
js_UnlockGCThing(cx, rt->emptyString);
/*
* Clear these so they get recreated if the standard classes are
* initialized again.
*/
rt->jsNaN = NULL;
rt->jsNegativeInfinity = NULL;
rt->jsPositiveInfinity = NULL;
rt->emptyString = NULL;
/* Clear debugging state to remove GC roots. */
JS_ClearAllTraps(cx);
JS_ClearAllWatchPoints(cx);
}
/* Remove more GC roots in regExpStatics, then collect garbage. */
#if JS_HAS_REGEXPS
js_FreeRegExpStatics(cx, &cx->regExpStatics);
#endif
js_ForceGC(cx);
if (rtempty) {
/* Free atom state now that we've run the GC. */
js_FreeAtomState(cx, &rt->atomState);
}
/* Free the stuff hanging off of cx. */
JS_FinishArenaPool(&cx->stackPool);
JS_FinishArenaPool(&cx->codePool);
JS_FinishArenaPool(&cx->tempPool);
if (cx->lastMessage)
free(cx->lastMessage);
free(cx);
}
JSContext *
js_ContextIterator(JSRuntime *rt, JSContext **iterp)
{
JSContext *cx = *iterp;
JS_LOCK_RUNTIME(rt);
if (!cx)
cx = (JSContext *)rt->contextList.next;
if ((void *)cx == &rt->contextList)
cx = NULL;
else
*iterp = (JSContext *)cx->links.next;
JS_UNLOCK_RUNTIME(rt);
return cx;
}
void
js_ReportErrorVA(JSContext *cx, uintN flags, const char *format, va_list ap)
{
JSStackFrame *fp;
JSErrorReport report, *reportp;
char *last;
fp = cx->fp;
if (fp && fp->script && fp->pc) {
report.filename = fp->script->filename;
report.lineno = js_PCToLineNumber(fp->script, fp->pc);
/* XXX should fetch line somehow */
report.linebuf = NULL;
report.tokenptr = NULL;
report.flags = flags;
reportp = &report;
} else {
/* XXXshaver still fill out report here for flags? */
reportp = NULL;
}
last = JS_vsmprintf(format, ap);
if (!last)
return;
js_ReportErrorAgain(cx, last, reportp);
free(last);
}
/*
* The arguments from ap need to be packaged up into an array and stored
* into the report struct.
*
* The format string addressed by the error number may contain operands
* identified by the format {N}, where N is a decimal digit. Each of these
* is to be replaced by the Nth argument from the va_list. The complete
* message is placed into reportp->ucmessage converted to a JSString.
*
* returns true/false if the expansion succeeds (can fail for memory errors)
*/
JSBool
js_ExpandErrorArguments(JSContext *cx, JSErrorCallback callback,
void *userRef, const uintN errorNumber,
char **messagep, JSErrorReport *reportp, va_list ap)
{
const JSErrorFormatString *fmtData;
int i;
int argCount;
*messagep = NULL;
if (callback) {
fmtData = (*callback)(userRef, "Mountain View", errorNumber);
if (fmtData != NULL) {
argCount = fmtData->argCount;
if (argCount > 0) {
/*
* Gather the arguments into a char * array, the
* messageArgs field is supposed to be an array of
* JSString's and we'll convert them later.
*/
reportp->messageArgs = malloc(sizeof(char *) * argCount);
if (!reportp->messageArgs)
return JS_FALSE;
for (i = 0; i < argCount; i++)
reportp->messageArgs[i] = (JSString *) va_arg(ap, char *);
}
/*
* Parse the error format, substituting the argument X
* for {X} in the format.
*/
if (argCount > 0) {
if (fmtData->format) {
const char *fmt, *arg;
char *out;
int expandedArgs = 0;
int expandedLength
= strlen(fmtData->format)
- (3 * argCount); /* exclude the {n} */
for (i = 0; i < argCount; i++) {
expandedLength
+= strlen((char *)reportp->messageArgs[i]);
}
*messagep = out = malloc(expandedLength + 1);
if (!out) {
if (reportp->messageArgs) {
free(reportp->messageArgs);
reportp->messageArgs = NULL;
}
return JS_FALSE;
}
fmt = fmtData->format;
while (*fmt) {
if (*fmt == '{') { /* balance} */
if (isdigit(fmt[1])) {
int d = JS7_UNDEC(fmt[1]);
JS_ASSERT(expandedArgs < argCount);
arg = (char *)reportp->messageArgs[d];
strcpy(out, arg);
out += strlen(arg);
fmt += 3;
expandedArgs++;
continue;
}
}
*out++ = *fmt++;
}
JS_ASSERT(expandedArgs == argCount);
*out = '\0';
}
/*
* Now convert all the arguments to JSStrings.
*/
for (i = 0; i < argCount; i++) {
reportp->messageArgs[i] =
JS_NewStringCopyZ(cx, (char *)reportp->messageArgs[i]);
}
} else {
*messagep = JS_strdup(cx, fmtData->format);
}
/*
* And finally convert the message.
*/
reportp->ucmessage = JS_NewStringCopyZ(cx, *messagep);
}
}
if (*messagep == NULL) {
/* where's the right place for this ??? */
const char *defaultErrorMessage
= "No error message available for error number %d";
size_t nbytes = strlen(defaultErrorMessage) + 16;
*messagep = (char *)malloc(nbytes);
JS_snprintf(*messagep, nbytes, defaultErrorMessage, errorNumber);
}
return JS_TRUE;
}
void
js_ReportErrorNumberVA(JSContext *cx, uintN flags, JSErrorCallback callback,
void *userRef, const uintN errorNumber, va_list ap)
{
JSStackFrame *fp;
JSErrorReport report;
char *message;
report.messageArgs = NULL;
report.ucmessage = NULL;
message = NULL;
fp = cx->fp;
if (fp && fp->script && fp->pc) {
report.filename = fp->script->filename;
report.lineno = js_PCToLineNumber(fp->script, fp->pc);
} else {
report.filename = NULL;
report.lineno = 0;
}
/* XXX should fetch line somehow */
report.linebuf = NULL;
report.tokenptr = NULL;
report.flags = flags;
report.errorNumber = errorNumber;
if (!js_ExpandErrorArguments(cx, callback, userRef, errorNumber,
&message, &report, ap))
return;
#if JS_HAS_ERROR_EXCEPTIONS
/*
* Check the error report, and set a JavaScript-catchable exception
* if the error is defined to have an associated exception. If an
* exception is thrown, then the JSREPORT_EXCEPTION flag will be set
* on the error report, and exception-aware hosts should ignore it.
*/
js_ErrorToException(cx, &report, message);
#endif
js_ReportErrorAgain(cx, message, &report);
if (message)
free(message);
if (report.messageArgs)
free(report.messageArgs);
}
JS_FRIEND_API(void)
js_ReportErrorAgain(JSContext *cx, const char *message, JSErrorReport *reportp)
{
JSErrorReporter onError;
if (!message)
return;
if (cx->lastMessage)
free(cx->lastMessage);
cx->lastMessage = JS_strdup(cx, message);
if (!cx->lastMessage)
return;
onError = cx->errorReporter;
if (onError)
(*onError)(cx, cx->lastMessage, reportp);
}
void
js_ReportIsNotDefined(JSContext *cx, const char *name)
{
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_NOT_DEFINED, name);
}
#if defined DEBUG && defined XP_UNIX
/* For gdb usage. */
void js_traceon(JSContext *cx) { cx->tracefp = stderr; }
void js_traceoff(JSContext *cx) { cx->tracefp = NULL; }
#endif
JSErrorFormatString js_ErrorFormatString[JSErr_Limit] = {
#if JS_HAS_DFLT_MSG_STRINGS
#define MSG_DEF(name, number, count, exception, format) \
{ format, count } ,
#else
#define MSG_DEF(name, number, count, exception, format) \
{ NULL, count } ,
#endif
#include "js.msg"
#undef MSG_DEF
};
const JSErrorFormatString *
js_GetErrorMessage(void *userRef, const char *locale, const uintN errorNumber)
{
if ((errorNumber > 0) && (errorNumber < JSErr_Limit))
return &js_ErrorFormatString[errorNumber];
else
return NULL;
}

View File

@@ -1,230 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jscntxt_h___
#define jscntxt_h___
/*
* JS execution context.
*/
#ifndef NSPR20
#include "jsarena.h"
#else
/* Removed by JSIFY: #include "plarena.h"
*/
#include "jsarena.h" /* Added by JSIFY */
#endif
#include "jsclist.h"
#include "jslong.h"
#include "jsatom.h"
#include "jsgc.h"
#include "jsinterp.h"
#include "jsobj.h"
#include "jsprvtd.h"
#include "jspubtd.h"
#include "jsregexp.h"
JS_BEGIN_EXTERN_C
struct JSRuntime {
/* Garbage collector state, used by jsgc.c. */
JSArenaPool gcArenaPool;
JSArenaPool gcFlagsPool;
JSHashTable *gcRootsHash;
JSGCThing *gcFreeList;
uint32 gcBytes;
uint32 gcLastBytes;
uint32 gcMaxBytes;
uint32 gcLevel;
uint32 gcNumber;
JSBool gcPoke;
JSGCCallback gcCallback;
#ifdef JS_GCMETER
JSGCStats gcStats;
#endif
/* Literal table maintained by jsatom.c functions. */
JSAtomState atomState;
/* Random number generator state, used by jsmath.c. */
JSBool rngInitialized;
int64 rngMultiplier;
int64 rngAddend;
int64 rngMask;
int64 rngSeed;
jsdouble rngDscale;
/* Well-known numbers held for use by this runtime's contexts. */
jsdouble *jsNaN;
jsdouble *jsNegativeInfinity;
jsdouble *jsPositiveInfinity;
/* Empty string held for use by this runtime's contexts. */
JSString *emptyString;
/* List of active contexts sharing this runtime. */
JSCList contextList;
/* These are used for debugging -- see jsprvtd.h and jsdbgapi.h. */
JSTrapHandler interruptHandler;
void *interruptHandlerData;
JSNewScriptHook newScriptHook;
void *newScriptHookData;
JSDestroyScriptHook destroyScriptHook;
void *destroyScriptHookData;
JSTrapHandler debuggerHandler;
void *debuggerHandlerData;
JSSourceHandler sourceHandler;
void *sourceHandlerData;
JSInterpreterHook executeHook;
void *executeHookData;
JSInterpreterHook callHook;
void *callHookData;
/* More debugging state, see jsdbgapi.c. */
JSCList trapList;
JSCList watchPointList;
/* Weak links to properties, indexed by quickened get/set opcodes. */
/* XXX must come after JSCLists or MSVC alignment bug bites empty lists */
JSPropertyCache propertyCache;
#ifdef JS_THREADSAFE
/* These combine to interlock the GC and new requests. */
PRLock *gcLock;
PRCondVar *gcDone;
PRCondVar *requestDone;
uint32 requestCount;
/* Lock and owning thread pointer for JS_LOCK_RUNTIME. */
JSThinLock rtLock;
#endif
};
struct JSContext {
JSCList links;
/* Interpreter activation count. */
uintN interpLevel;
/* Runtime version control identifier and equality operators. */
JSVersion version;
jsbytecode jsop_eq;
jsbytecode jsop_ne;
/* Data shared by threads in an address space. */
JSRuntime *runtime;
/* Stack arena pool and frame pointer register. */
JSArenaPool stackPool;
JSStackFrame *fp;
/* Temporary arena pools used while compiling and decompiling. */
JSArenaPool codePool;
JSArenaPool tempPool;
/* Top-level object and pointer to top stack frame's scope chain. */
JSObject *globalObject;
/* Most recently created things by type, members of the GC's root set. */
JSGCThing *newborn[GCX_NTYPES];
/* Regular expression class statics (XXX not shared globally). */
JSRegExpStatics regExpStatics;
/* State for object and array toSource conversion. */
JSSharpObjectMap sharpObjectMap;
/* Last message string and trace file for debugging. */
char *lastMessage;
#ifdef DEBUG
void *tracefp;
#endif
/* Per-context optional user callbacks. */
JSBranchCallback branchCallback;
JSErrorReporter errorReporter;
/* Client opaque pointer */
void *data;
/* GC and thread-safe state. */
JSStackFrame *dormantFrameChain; /* dormant stack frame to scan */
uint32 gcDisabled; /* XXX for pre-ECMAv2 switch */
#ifdef JS_THREADSAFE
jsword thread;
jsrefcount requestDepth;
JSPackedBool gcActive;
#endif
/* Exception state (NB: throwing is packed with gcActive above). */
JSPackedBool throwing; /* is there a pending exception? */
jsval exception; /* most-recently-thrown exceptin */
};
extern JSContext *
js_NewContext(JSRuntime *rt, size_t stacksize);
extern void
js_DestroyContext(JSContext *cx);
extern JSContext *
js_ContextIterator(JSRuntime *rt, JSContext **iterp);
/*
* Report an exception, which is currently realized as a printf-style format
* string and its arguments.
*/
typedef enum JSErrNum {
#define MSG_DEF(name, number, count, exception, format) \
name = number,
#include "js.msg"
#undef MSG_DEF
JSErr_Limit
} JSErrNum;
extern const JSErrorFormatString *
js_GetErrorMessage(void *userRef, const char *locale, const uintN errorNumber);
#ifdef va_start
extern void
js_ReportErrorVA(JSContext *cx, uintN flags, const char *format, va_list ap);
extern void
js_ReportErrorNumberVA(JSContext *cx, uintN flags, JSErrorCallback callback,
void *userRef, const uintN errorNumber, va_list ap);
extern JSBool
js_ExpandErrorArguments(JSContext *cx, JSErrorCallback callback,
void *userRef, const uintN errorNumber,
char **message, JSErrorReport *reportp,
va_list ap);
#endif
/*
* Report an exception using a previously composed JSErrorReport.
*/
extern JS_FRIEND_API(void)
js_ReportErrorAgain(JSContext *cx, const char *message, JSErrorReport *report);
extern void
js_ReportIsNotDefined(JSContext *cx, const char *name);
extern JSErrorFormatString js_ErrorFormatString[JSErr_Limit];
JS_END_EXTERN_C
#endif /* jscntxt_h___ */

View File

@@ -1,20 +0,0 @@
/* -*- Mode: C; tab-width: 8 -*-
* Copyright © 1996 Netscape Communications Corporation, All Rights Reserved.
*/
#ifndef jscompat_h___
#define jscompat_h___
/*
* Compatibility glue for various NSPR versions. We must always define int8,
* int16, jsword, and so on to minimize differences with js/ref, no matter what
* the NSPR typedef names may be.
*/
#include "jstypes.h"
#include "jslong.h"
typedef JSIntn intN;
typedef JSUintn uintN;
typedef JSUword jsuword;
typedef JSWord jsword;
typedef float float32;
#define allocPriv allocPool
#endif /* jscompat_h___ */

View File

@@ -1,267 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS configuration macros.
*/
#ifndef JS_VERSION
#define JS_VERSION 140
#endif
#if JS_VERSION == 100
#define JS_BUG_AUTO_INDEX_PROPS 1 /* new object o: o.p = v sets o[0] */
#define JS_BUG_NULL_INDEX_PROPS 1 /* o[0] defaults to null, not void */
#define JS_BUG_EMPTY_INDEX_ZERO 1 /* o[""] is equivalent to o[0] */
#define JS_BUG_SHORT_CIRCUIT 1 /* 1 && 1 => true, 1 && 0 => 0 bug */
#define JS_BUG_EAGER_TOSTRING 1 /* o.toString() trumps o.valueOf() */
#define JS_BUG_VOID_TOSTRING 0 /* void 0 + 0 == "undefined0" */
#define JS_BUG_EVAL_THIS_FUN 0 /* eval('this') in function f is f */
#define JS_BUG_EVAL_THIS_SCOPE 0 /* Math.eval('sin(x)') vs. local x */
#define JS_BUG_FALLIBLE_EQOPS 1 /* fallible/intransitive equality ops */
#define JS_BUG_FALLIBLE_TONUM 1 /* fallible ValueToNumber primitive */
#define JS_BUG_WITH_CLOSURE 0 /* with(o)function f(){} sets o.f */
#define JS_BUG_SET_ENUMERATE 1 /* o.p=q flags o.p JSPROP_ENUMERATE */
#define JS_HAS_PROP_DELETE 0 /* delete o.p removes p from o */
#define JS_HAS_CALL_OBJECT 0 /* fun.caller is stack frame obj */
#define JS_HAS_LABEL_STATEMENT 0 /* has break/continue to label: */
#define JS_HAS_DO_WHILE_LOOP 0 /* has do {...} while (b) */
#define JS_HAS_SWITCH_STATEMENT 0 /* has switch (v) {case c: ...} */
#define JS_HAS_SOME_PERL_FUN 0 /* has array.join/reverse/sort */
#define JS_HAS_MORE_PERL_FUN 0 /* has array.push, str.substr, etc */
#define JS_HAS_VALUEOF_HINT 0 /* valueOf(hint) where hint is typeof */
#define JS_HAS_LEXICAL_CLOSURE 0 /* nested functions, lexically closed */
#define JS_HAS_APPLY_FUNCTION 0 /* has fun.apply(obj, argArray) */
#define JS_HAS_CALL_FUNCTION 0 /* has fun.call(obj, arg1, ... argN) */
#define JS_HAS_OBJ_PROTO_PROP 0 /* has o.__proto__ etc. */
#define JS_HAS_REGEXPS 0 /* has perl r.e.s via RegExp, /pat/ */
#define JS_HAS_SEQUENCE_OPS 0 /* has array.slice, string.concat */
#define JS_HAS_INITIALIZERS 0 /* has var o = {'foo': 42, 'bar':3} */
#define JS_HAS_OBJ_WATCHPOINT 0 /* has o.watch and o.unwatch */
#define JS_HAS_EXPORT_IMPORT 0 /* has export fun; import obj.fun */
#define JS_HAS_EVAL_THIS_SCOPE 0 /* Math.eval is same as with (Math) */
#define JS_HAS_TRIPLE_EQOPS 0 /* has === and !== identity eqops */
#define JS_HAS_SHARP_VARS 0 /* has #n=, #n# for object literals */
#define JS_HAS_REPLACE_LAMBDA 0 /* has string.replace(re, lambda) */
#define JS_HAS_SCRIPT_OBJECT 0 /* has (new Script("x++")).exec() */
#define JS_HAS_XDR 0 /* has XDR API and object methods */
#define JS_HAS_EXCEPTIONS 0 /* has exception handling */
#define JS_HAS_UNDEFINED 0 /* has global "undefined" property */
#define JS_HAS_TOSOURCE 0 /* has Object/Array toSource method */
#define JS_HAS_IN_OPERATOR 0 /* has in operator ('p' in {p:1}) */
#define JS_HAS_INSTANCEOF 0 /* has {p:1} instanceof Object */
#define JS_HAS_ARGS_OBJECT 0 /* has minimal ECMA arguments object */
#define JS_HAS_DEBUGGER_KEYWORD 0 /* has hook for debugger keyword */
#define JS_HAS_ERROR_EXCEPTIONS 0 /* has error object hierarchy */
#elif JS_VERSION == 110
#define JS_BUG_AUTO_INDEX_PROPS 0 /* new object o: o.p = v sets o[0] */
#define JS_BUG_NULL_INDEX_PROPS 1 /* o[0] defaults to null, not void */
#define JS_BUG_EMPTY_INDEX_ZERO 1 /* o[""] is equivalent to o[0] */
#define JS_BUG_SHORT_CIRCUIT 1 /* 1 && 1 => true, 1 && 0 => 0 bug */
#define JS_BUG_EAGER_TOSTRING 1 /* o.toString() trumps o.valueOf() */
#define JS_BUG_VOID_TOSTRING 0 /* void 0 + 0 == "undefined0" */
#define JS_BUG_EVAL_THIS_FUN 1 /* eval('this') in function f is f */
#define JS_BUG_EVAL_THIS_SCOPE 1 /* Math.eval('sin(x)') vs. local x */
#define JS_BUG_FALLIBLE_EQOPS 1 /* fallible/intransitive equality ops */
#define JS_BUG_FALLIBLE_TONUM 1 /* fallible ValueToNumber primitive */
#define JS_BUG_WITH_CLOSURE 0 /* with(o)function f(){} sets o.f */
#define JS_BUG_SET_ENUMERATE 1 /* o.p=q flags o.p JSPROP_ENUMERATE */
#define JS_HAS_PROP_DELETE 0 /* delete o.p removes p from o */
#define JS_HAS_CALL_OBJECT 0 /* fun.caller is stack frame obj */
#define JS_HAS_LABEL_STATEMENT 0 /* has break/continue to label: */
#define JS_HAS_DO_WHILE_LOOP 0 /* has do {...} while (b) */
#define JS_HAS_SWITCH_STATEMENT 0 /* has switch (v) {case c: ...} */
#define JS_HAS_SOME_PERL_FUN 1 /* has array.join/reverse/sort */
#define JS_HAS_MORE_PERL_FUN 0 /* has array.push, str.substr, etc */
#define JS_HAS_VALUEOF_HINT 0 /* valueOf(hint) where hint is typeof */
#define JS_HAS_LEXICAL_CLOSURE 0 /* nested functions, lexically closed */
#define JS_HAS_APPLY_FUNCTION 0 /* has apply(fun, arg1, ... argN) */
#define JS_HAS_CALL_FUNCTION 0 /* has fun.call(obj, arg1, ... argN) */
#define JS_HAS_OBJ_PROTO_PROP 0 /* has o.__proto__ etc. */
#define JS_HAS_REGEXPS 0 /* has perl r.e.s via RegExp, /pat/ */
#define JS_HAS_SEQUENCE_OPS 0 /* has array.slice, string.concat */
#define JS_HAS_INITIALIZERS 0 /* has var o = {'foo': 42, 'bar':3} */
#define JS_HAS_OBJ_WATCHPOINT 0 /* has o.watch and o.unwatch */
#define JS_HAS_EXPORT_IMPORT 0 /* has export fun; import obj.fun */
#define JS_HAS_EVAL_THIS_SCOPE 0 /* Math.eval is same as with (Math) */
#define JS_HAS_TRIPLE_EQOPS 0 /* has === and !== identity eqops */
#define JS_HAS_SHARP_VARS 0 /* has #n=, #n# for object literals */
#define JS_HAS_REPLACE_LAMBDA 0 /* has string.replace(re, lambda) */
#define JS_HAS_SCRIPT_OBJECT 0 /* has (new Script("x++")).exec() */
#define JS_HAS_XDR 0 /* has XDR API and object methods */
#define JS_HAS_EXCEPTIONS 0 /* has exception handling */
#define JS_HAS_UNDEFINED 0 /* has global "undefined" property */
#define JS_HAS_TOSOURCE 0 /* has Object/Array toSource method */
#define JS_HAS_IN_OPERATOR 0 /* has in operator ('p' in {p:1}) */
#define JS_HAS_INSTANCEOF 0 /* has {p:1} instanceof Object */
#define JS_HAS_ARGS_OBJECT 0 /* has minimal ECMA arguments object */
#define JS_HAS_DEBUGGER_KEYWORD 0 /* has hook for debugger keyword */
#define JS_HAS_ERROR_EXCEPTIONS 0 /* has error object hierarchy */
#elif JS_VERSION == 120
#define JS_BUG_AUTO_INDEX_PROPS 0 /* new object o: o.p = v sets o[0] */
#define JS_BUG_NULL_INDEX_PROPS 0 /* o[0] defaults to null, not void */
#define JS_BUG_EMPTY_INDEX_ZERO 0 /* o[""] is equivalent to o[0] */
#define JS_BUG_SHORT_CIRCUIT 0 /* 1 && 1 => true, 1 && 0 => 0 bug */
#define JS_BUG_EAGER_TOSTRING 0 /* o.toString() trumps o.valueOf() */
#define JS_BUG_VOID_TOSTRING 1 /* void 0 + 0 == "undefined0" */
#define JS_BUG_EVAL_THIS_FUN 0 /* eval('this') in function f is f */
#define JS_BUG_EVAL_THIS_SCOPE 0 /* Math.eval('sin(x)') vs. local x */
#define JS_BUG_FALLIBLE_EQOPS 0 /* fallible/intransitive equality ops */
#define JS_BUG_FALLIBLE_TONUM 0 /* fallible ValueToNumber primitive */
#define JS_BUG_WITH_CLOSURE 1 /* with(o)function f(){} sets o.f */
#define JS_BUG_SET_ENUMERATE 1 /* o.p=q flags o.p JSPROP_ENUMERATE */
#define JS_HAS_PROP_DELETE 1 /* delete o.p removes p from o */
#define JS_HAS_CALL_OBJECT 1 /* fun.caller is stack frame obj */
#define JS_HAS_LABEL_STATEMENT 1 /* has break/continue to label: */
#define JS_HAS_DO_WHILE_LOOP 1 /* has do {...} while (b) */
#define JS_HAS_SWITCH_STATEMENT 1 /* has switch (v) {case c: ...} */
#define JS_HAS_SOME_PERL_FUN 1 /* has array.join/reverse/sort */
#define JS_HAS_MORE_PERL_FUN 1 /* has array.push, str.substr, etc */
#define JS_HAS_VALUEOF_HINT 1 /* valueOf(hint) where hint is typeof */
#define JS_HAS_LEXICAL_CLOSURE 1 /* nested functions, lexically closed */
#define JS_HAS_APPLY_FUNCTION 1 /* has apply(fun, arg1, ... argN) */
#define JS_HAS_CALL_FUNCTION 0 /* has fun.call(obj, arg1, ... argN) */
#define JS_HAS_OBJ_PROTO_PROP 1 /* has o.__proto__ etc. */
#define JS_HAS_REGEXPS 1 /* has perl r.e.s via RegExp, /pat/ */
#define JS_HAS_SEQUENCE_OPS 1 /* has array.slice, string.concat */
#define JS_HAS_INITIALIZERS 1 /* has var o = {'foo': 42, 'bar':3} */
#define JS_HAS_OBJ_WATCHPOINT 1 /* has o.watch and o.unwatch */
#define JS_HAS_EXPORT_IMPORT 1 /* has export fun; import obj.fun */
#define JS_HAS_EVAL_THIS_SCOPE 1 /* Math.eval is same as with (Math) */
#define JS_HAS_TRIPLE_EQOPS 0 /* has === and !== identity eqops */
#define JS_HAS_SHARP_VARS 0 /* has #n=, #n# for object literals */
#define JS_HAS_REPLACE_LAMBDA 0 /* has string.replace(re, lambda) */
#define JS_HAS_SCRIPT_OBJECT 0 /* has (new Script("x++")).exec() */
#define JS_HAS_XDR 0 /* has XDR API and object methods */
#define JS_HAS_EXCEPTIONS 0 /* has exception handling */
#define JS_HAS_UNDEFINED 0 /* has global "undefined" property */
#define JS_HAS_TOSOURCE 0 /* has Object/Array toSource method */
#define JS_HAS_IN_OPERATOR 0 /* has in operator ('p' in {p:1}) */
#define JS_HAS_INSTANCEOF 0 /* has {p:1} instanceof Object */
#define JS_HAS_ARGS_OBJECT 0 /* has minimal ECMA arguments object */
#define JS_HAS_DEBUGGER_KEYWORD 0 /* has hook for debugger keyword */
#define JS_HAS_ERROR_EXCEPTIONS 0 /* has error object hierarchy */
#elif JS_VERSION == 130
#define JS_BUG_AUTO_INDEX_PROPS 0 /* new object o: o.p = v sets o[0] */
#define JS_BUG_NULL_INDEX_PROPS 0 /* o[0] defaults to null, not void */
#define JS_BUG_EMPTY_INDEX_ZERO 0 /* o[""] is equivalent to o[0] */
#define JS_BUG_SHORT_CIRCUIT 0 /* 1 && 1 => true, 1 && 0 => 0 bug */
#define JS_BUG_EAGER_TOSTRING 0 /* o.toString() trumps o.valueOf() */
#define JS_BUG_VOID_TOSTRING 0 /* void 0 + 0 == "undefined0" */
#define JS_BUG_EVAL_THIS_FUN 0 /* eval('this') in function f is f */
#define JS_BUG_EVAL_THIS_SCOPE 0 /* Math.eval('sin(x)') vs. local x */
#define JS_BUG_FALLIBLE_EQOPS 0 /* fallible/intransitive equality ops */
#define JS_BUG_FALLIBLE_TONUM 0 /* fallible ValueToNumber primitive */
#define JS_BUG_WITH_CLOSURE 1 /* with(o)function f(){} sets o.f */
#define JS_BUG_SET_ENUMERATE 0 /* o.p=q flags o.p JSPROP_ENUMERATE */
#define JS_HAS_PROP_DELETE 1 /* delete o.p removes p from o */
#define JS_HAS_CALL_OBJECT 1 /* fun.caller is stack frame obj */
#define JS_HAS_LABEL_STATEMENT 1 /* has break/continue to label: */
#define JS_HAS_DO_WHILE_LOOP 1 /* has do {...} while (b) */
#define JS_HAS_SWITCH_STATEMENT 1 /* has switch (v) {case c: ...} */
#define JS_HAS_SOME_PERL_FUN 1 /* has array.join/reverse/sort */
#define JS_HAS_MORE_PERL_FUN 1 /* has array.push, str.substr, etc */
#define JS_HAS_VALUEOF_HINT 1 /* valueOf(hint) where hint is typeof */
#define JS_HAS_LEXICAL_CLOSURE 1 /* nested functions, lexically closed */
#define JS_HAS_APPLY_FUNCTION 1 /* has apply(fun, arg1, ... argN) */
#define JS_HAS_CALL_FUNCTION 1 /* has fun.call(obj, arg1, ... argN) */
#define JS_HAS_OBJ_PROTO_PROP 1 /* has o.__proto__ etc. */
#define JS_HAS_REGEXPS 1 /* has perl r.e.s via RegExp, /pat/ */
#define JS_HAS_SEQUENCE_OPS 1 /* has array.slice, string.concat */
#define JS_HAS_INITIALIZERS 1 /* has var o = {'foo': 42, 'bar':3} */
#define JS_HAS_OBJ_WATCHPOINT 1 /* has o.watch and o.unwatch */
#define JS_HAS_EXPORT_IMPORT 1 /* has export fun; import obj.fun */
#define JS_HAS_EVAL_THIS_SCOPE 1 /* Math.eval is same as with (Math) */
#define JS_HAS_TRIPLE_EQOPS 1 /* has === and !== identity eqops */
#define JS_HAS_SHARP_VARS 1 /* has #n=, #n# for object literals */
#define JS_HAS_REPLACE_LAMBDA 1 /* has string.replace(re, lambda) */
#define JS_HAS_SCRIPT_OBJECT 1 /* has (new Script("x++")).exec() */
#define JS_HAS_XDR 1 /* has XDR API and object methods */
#define JS_HAS_EXCEPTIONS 0 /* has exception handling */
#define JS_HAS_UNDEFINED 1 /* has global "undefined" property */
#define JS_HAS_TOSOURCE 1 /* has Object/Array toSource method */
#define JS_HAS_IN_OPERATOR 0 /* has in operator ('p' in {p:1}) */
#define JS_HAS_INSTANCEOF 0 /* has {p:1} instanceof Object */
#define JS_HAS_ARGS_OBJECT 1 /* has minimal ECMA arguments object */
#define JS_HAS_DEBUGGER_KEYWORD 1 /* has hook for debugger keyword */
#define JS_HAS_ERROR_EXCEPTIONS 0 /* has error object hierarchy */
#elif JS_VERSION == 140
#define JS_BUG_AUTO_INDEX_PROPS 0 /* new object o: o.p = v sets o[0] */
#define JS_BUG_NULL_INDEX_PROPS 0 /* o[0] defaults to null, not void */
#define JS_BUG_EMPTY_INDEX_ZERO 0 /* o[""] is equivalent to o[0] */
#define JS_BUG_SHORT_CIRCUIT 0 /* 1 && 1 => true, 1 && 0 => 0 bug */
#define JS_BUG_EAGER_TOSTRING 0 /* o.toString() trumps o.valueOf() */
#define JS_BUG_VOID_TOSTRING 0 /* void 0 + 0 == "undefined0" */
#define JS_BUG_EVAL_THIS_FUN 0 /* eval('this') in function f is f */
#define JS_BUG_EVAL_THIS_SCOPE 0 /* Math.eval('sin(x)') vs. local x */
#define JS_BUG_FALLIBLE_EQOPS 0 /* fallible/intransitive equality ops */
#define JS_BUG_FALLIBLE_TONUM 0 /* fallible ValueToNumber primitive */
#define JS_BUG_WITH_CLOSURE 1 /* with(o)function f(){} sets o.f */
#define JS_BUG_SET_ENUMERATE 0 /* o.p=q flags o.p JSPROP_ENUMERATE */
#define JS_HAS_PROP_DELETE 1 /* delete o.p removes p from o */
#define JS_HAS_CALL_OBJECT 1 /* fun.caller is stack frame obj */
#define JS_HAS_LABEL_STATEMENT 1 /* has break/continue to label: */
#define JS_HAS_DO_WHILE_LOOP 1 /* has do {...} while (b) */
#define JS_HAS_SWITCH_STATEMENT 1 /* has switch (v) {case c: ...} */
#define JS_HAS_SOME_PERL_FUN 1 /* has array.join/reverse/sort */
#define JS_HAS_MORE_PERL_FUN 1 /* has array.push, str.substr, etc */
#define JS_HAS_VALUEOF_HINT 1 /* valueOf(hint) where hint is typeof */
#define JS_HAS_LEXICAL_CLOSURE 1 /* nested functions, lexically closed */
#define JS_HAS_APPLY_FUNCTION 1 /* has apply(fun, arg1, ... argN) */
#define JS_HAS_CALL_FUNCTION 1 /* has fun.call(obj, arg1, ... argN) */
#define JS_HAS_OBJ_PROTO_PROP 1 /* has o.__proto__ etc. */
#define JS_HAS_REGEXPS 1 /* has perl r.e.s via RegExp, /pat/ */
#define JS_HAS_SEQUENCE_OPS 1 /* has array.slice, string.concat */
#define JS_HAS_INITIALIZERS 1 /* has var o = {'foo': 42, 'bar':3} */
#define JS_HAS_OBJ_WATCHPOINT 1 /* has o.watch and o.unwatch */
#define JS_HAS_EXPORT_IMPORT 1 /* has export fun; import obj.fun */
#define JS_HAS_EVAL_THIS_SCOPE 1 /* Math.eval is same as with (Math) */
#define JS_HAS_TRIPLE_EQOPS 1 /* has === and !== identity eqops */
#define JS_HAS_SHARP_VARS 1 /* has #n=, #n# for object literals */
#define JS_HAS_REPLACE_LAMBDA 1 /* has string.replace(re, lambda) */
#define JS_HAS_SCRIPT_OBJECT 1 /* has (new Script("x++")).exec() */
#define JS_HAS_XDR 1 /* has XDR API and object methods */
#define JS_HAS_EXCEPTIONS 1 /* has exception handling */
#define JS_HAS_UNDEFINED 1 /* has global "undefined" property */
#define JS_HAS_TOSOURCE 1 /* has Object/Array toSource method */
#define JS_HAS_IN_OPERATOR 1 /* has in operator ('p' in {p:1}) */
#define JS_HAS_INSTANCEOF 1 /* has {p:1} instanceof Object */
#define JS_HAS_ARGS_OBJECT 1 /* has minimal ECMA arguments object */
#define JS_HAS_DEBUGGER_KEYWORD 1 /* has hook for debugger keyword */
#define JS_HAS_ERROR_EXCEPTIONS 1 /* rt errors reflected as exceptions */
#define JS_HAS_DFLT_MSG_STRINGS 1 /* provides English error messages */
#else
#error "unknown JS_VERSION"
#endif

View File

@@ -1,288 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* Generate CPU-specific bit-size and similar #defines.
*/
#include <stdio.h>
#if defined(sgi)
#ifndef IRIX
# error "IRIX is not defined"
#endif
#endif
#if defined(__sun)
#if defined(__svr4) || defined(__svr4__)
#ifndef SOLARIS
# error "SOLARIS is not defined"
#endif
#else
#ifndef SUNOS4
# error "SUNOS4 is not defined"
#endif
#endif
#endif
#if defined(__hpux)
#ifndef HPUX
# error "HPUX is not defined"
#endif
#endif
#if defined(__osf__)
#ifndef OSF1
# error "OSF1 is not defined"
#endif
#endif
#if defined(_IBMR2)
#ifndef AIX
# error "AIX is not defined"
#endif
#endif
#if defined(linux)
#ifndef LINUX
# error "LINUX is not defined"
#endif
#endif
#if defined(bsdi)
#ifndef BSDI
# error "BSDI is not defined"
#endif
#endif
#if defined(M_UNIX)
#ifndef SCO
# error "SCO is not defined"
#endif
#endif
#if !defined(M_UNIX) && defined(_USLC_)
#ifndef UNIXWARE
# error "UNIXWARE is not defined"
#endif
#endif
#ifdef __MWERKS__
#define XP_MAC 1
#endif
/************************************************************************/
/* Generate cpucfg.h */
#ifdef XP_MAC
#include <Types.h>
#define INT64 UnsignedWide
#else
#ifdef XP_PC
#ifdef WIN32
#define INT64 _int64
#else
#define INT64 long
#endif
#else
#if defined(HPUX) || defined(SCO) || defined(UNIXWARE)
#define INT64 long
#else
#define INT64 long long
#endif
#endif
#endif
typedef void *prword;
struct align_short {
char c;
short a;
};
struct align_int {
char c;
int a;
};
struct align_long {
char c;
long a;
};
struct align_int64 {
char c;
INT64 a;
};
struct align_fakelonglong {
char c;
struct {
long hi, lo;
} a;
};
struct align_float {
char c;
float a;
};
struct align_double {
char c;
double a;
};
struct align_pointer {
char c;
void *a;
};
struct align_prword {
char c;
prword a;
};
#define ALIGN_OF(type) \
(((char*)&(((struct align_##type *)0)->a)) - ((char*)0))
int bpb;
static int Log2(int n)
{
int log2 = 0;
if (n & (n-1))
log2++;
if (n >> 16)
log2 += 16, n >>= 16;
if (n >> 8)
log2 += 8, n >>= 8;
if (n >> 4)
log2 += 4, n >>= 4;
if (n >> 2)
log2 += 2, n >>= 2;
if (n >> 1)
log2++;
return log2;
}
/* We assume that int's are 32 bits */
static void do64(void)
{
union {
long i;
char c[4];
} u;
u.i = 0x01020304;
if (u.c[0] == 0x01) {
printf("#undef IS_LITTLE_ENDIAN\n");
printf("#define IS_BIG_ENDIAN 1\n\n");
} else {
printf("#define IS_LITTLE_ENDIAN 1\n");
printf("#undef IS_BIG_ENDIAN\n\n");
}
}
static void do32(void)
{
union {
long i;
char c[4];
} u;
u.i = 0x01020304;
if (u.c[0] == 0x01) {
printf("#undef IS_LITTLE_ENDIAN\n");
printf("#define IS_BIG_ENDIAN 1\n\n");
} else {
printf("#define IS_LITTLE_ENDIAN 1\n");
printf("#undef IS_BIG_ENDIAN\n\n");
}
}
/*
* Conceivably this could actually be used, but there is lots of code out
* there with ands and shifts in it that assumes a byte is exactly 8 bits,
* so forget about porting THIS code to all those non 8 bit byte machines.
*/
static void BitsPerByte(void)
{
bpb = 8;
}
int main(int argc, char **argv)
{
BitsPerByte();
printf("#ifndef js_cpucfg___\n");
printf("#define js_cpucfg___\n\n");
printf("/* AUTOMATICALLY GENERATED - DO NOT EDIT */\n\n");
if (sizeof(long) == 8) {
do64();
} else {
do32();
}
printf("#define JS_BYTES_PER_BYTE %dL\n", sizeof(char));
printf("#define JS_BYTES_PER_SHORT %dL\n", sizeof(short));
printf("#define JS_BYTES_PER_INT %dL\n", sizeof(int));
printf("#define JS_BYTES_PER_INT64 %dL\n", 8);
printf("#define JS_BYTES_PER_LONG %dL\n", sizeof(long));
printf("#define JS_BYTES_PER_FLOAT %dL\n", sizeof(float));
printf("#define JS_BYTES_PER_DOUBLE %dL\n", sizeof(double));
printf("#define JS_BYTES_PER_WORD %dL\n", sizeof(prword));
printf("#define JS_BYTES_PER_DWORD %dL\n", 8);
printf("\n");
printf("#define JS_BITS_PER_BYTE %dL\n", bpb);
printf("#define JS_BITS_PER_SHORT %dL\n", bpb * sizeof(short));
printf("#define JS_BITS_PER_INT %dL\n", bpb * sizeof(int));
printf("#define JS_BITS_PER_INT64 %dL\n", bpb * 8);
printf("#define JS_BITS_PER_LONG %dL\n", bpb * sizeof(long));
printf("#define JS_BITS_PER_FLOAT %dL\n", bpb * sizeof(float));
printf("#define JS_BITS_PER_DOUBLE %dL\n", bpb * sizeof(double));
printf("#define JS_BITS_PER_WORD %dL\n", bpb * sizeof(prword));
printf("\n");
printf("#define JS_BITS_PER_BYTE_LOG2 %dL\n", Log2(bpb));
printf("#define JS_BITS_PER_SHORT_LOG2 %dL\n", Log2(bpb * sizeof(short)));
printf("#define JS_BITS_PER_INT_LOG2 %dL\n", Log2(bpb * sizeof(int)));
printf("#define JS_BITS_PER_INT64_LOG2 %dL\n", 6);
printf("#define JS_BITS_PER_LONG_LOG2 %dL\n", Log2(bpb * sizeof(long)));
printf("#define JS_BITS_PER_FLOAT_LOG2 %dL\n", Log2(bpb * sizeof(float)));
printf("#define JS_BITS_PER_DOUBLE_LOG2 %dL\n", Log2(bpb * sizeof(double)));
printf("#define JS_BITS_PER_WORD_LOG2 %dL\n", Log2(bpb * sizeof(prword)));
printf("\n");
printf("#define JS_ALIGN_OF_SHORT %dL\n", ALIGN_OF(short));
printf("#define JS_ALIGN_OF_INT %dL\n", ALIGN_OF(int));
printf("#define JS_ALIGN_OF_LONG %dL\n", ALIGN_OF(long));
if (sizeof(INT64) < 8) {
/* this machine doesn't actually support int64's */
printf("#define JS_ALIGN_OF_INT64 %dL\n", ALIGN_OF(fakelonglong));
} else {
printf("#define JS_ALIGN_OF_INT64 %dL\n", ALIGN_OF(int64));
}
printf("#define JS_ALIGN_OF_FLOAT %dL\n", ALIGN_OF(float));
printf("#define JS_ALIGN_OF_DOUBLE %dL\n", ALIGN_OF(double));
printf("#define JS_ALIGN_OF_POINTER %dL\n", ALIGN_OF(pointer));
printf("#define JS_ALIGN_OF_WORD %dL\n", ALIGN_OF(prword));
printf("\n");
printf("#define JS_BYTES_PER_WORD_LOG2 %dL\n", Log2(sizeof(prword)));
printf("#define JS_BYTES_PER_DWORD_LOG2 %dL\n", Log2(8));
printf("#define JS_WORDS_PER_DWORD_LOG2 %dL\n", Log2(8/sizeof(prword)));
printf("\n");
printf("#endif /* js_cpucfg___ */\n");
return 0;
}

View File

@@ -1,702 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef js_cpucfg___
#define js_cpucfg___
#include "jsosdep.h"
#ifdef XP_MAC
#include "jsmacos.h"
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 2L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 4L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#endif /* XP_MAC */
#ifdef _WIN32
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 8L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 4L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#endif /* _WIN32 */
#if defined(_WINDOWS) && !defined(_WIN32) /* WIN16 */
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 2L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 16L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 4L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 2L
#define JS_ALIGN_OF_LONG 2L
#define JS_ALIGN_OF_INT64 2L
#define JS_ALIGN_OF_FLOAT 2L
#define JS_ALIGN_OF_DOUBLE 2L
#define JS_ALIGN_OF_POINTER 2L
#define JS_ALIGN_OF_WORD 2L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#endif /* defined(_WINDOWS) && !defined(_WIN32) */
#ifdef XP_UNIX
#ifdef AIXV3
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 8L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 4L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#elif defined(BSDI)
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 4L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 4L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#elif defined(HPUX)
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 4L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 8L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#elif defined(IRIX)
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 8L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 8L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#elif defined(LINUX)
#ifdef __powerpc__
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
#elif __i386__
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#else
#error "linux cpu architecture not supported by jscpucfg.h"
#endif
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 4L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 4L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#elif defined(OSF1)
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 8L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 8L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 64L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 64L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 6L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 6L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 8L
#define JS_ALIGN_OF_INT64 8L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 8L
#define JS_ALIGN_OF_POINTER 8L
#define JS_ALIGN_OF_WORD 8L
#define JS_BYTES_PER_WORD_LOG2 3L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 0L
#elif defined(SOLARIS)
#ifdef i386
/* PC-based */
#undef IS_BIG_ENDIAN
#define IS_LITTLE_ENDIAN 1
#else
/* Sparc-based */
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
#endif
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 8L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 8L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#ifdef i386
#undef JS_ALIGN_OF_INT64
#undef JS_ALIGN_OF_DOUBLE
#define JS_ALIGN_OF_INT64 4L
#define JS_ALIGN_OF_DOUBLE 4L
#endif
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#elif defined(SUNOS4)
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 8L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 8L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#elif defined(SNI)
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 8L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 8L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#elif defined(SONY)
/* Don't have it */
#elif defined(NECSVR4)
/* Don't have it */
#elif defined(SCO)
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 4L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 4L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#elif defined(UNIXWARE)
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define JS_BYTES_PER_BYTE 1L
#define JS_BYTES_PER_SHORT 2L
#define JS_BYTES_PER_INT 4L
#define JS_BYTES_PER_INT64 8L
#define JS_BYTES_PER_LONG 4L
#define JS_BYTES_PER_FLOAT 4L
#define JS_BYTES_PER_DOUBLE 8L
#define JS_BYTES_PER_WORD 4L
#define JS_BYTES_PER_DWORD 8L
#define JS_BITS_PER_BYTE 8L
#define JS_BITS_PER_SHORT 16L
#define JS_BITS_PER_INT 32L
#define JS_BITS_PER_INT64 64L
#define JS_BITS_PER_LONG 32L
#define JS_BITS_PER_FLOAT 32L
#define JS_BITS_PER_DOUBLE 64L
#define JS_BITS_PER_WORD 32L
#define JS_BITS_PER_BYTE_LOG2 3L
#define JS_BITS_PER_SHORT_LOG2 4L
#define JS_BITS_PER_INT_LOG2 5L
#define JS_BITS_PER_INT64_LOG2 6L
#define JS_BITS_PER_LONG_LOG2 5L
#define JS_BITS_PER_FLOAT_LOG2 5L
#define JS_BITS_PER_DOUBLE_LOG2 6L
#define JS_BITS_PER_WORD_LOG2 5L
#define JS_ALIGN_OF_SHORT 2L
#define JS_ALIGN_OF_INT 4L
#define JS_ALIGN_OF_LONG 4L
#define JS_ALIGN_OF_INT64 4L
#define JS_ALIGN_OF_FLOAT 4L
#define JS_ALIGN_OF_DOUBLE 4L
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
#define JS_BYTES_PER_WORD_LOG2 2L
#define JS_BYTES_PER_DWORD_LOG2 3L
#define PR_WORDS_PER_DWORD_LOG2 1L
#endif
#endif /* XP_UNIX */
#endif /* js_cpucfg___ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,76 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsdate_h___
#define jsdate_h___
/*
* JS Date class interface.
*/
JS_BEGIN_EXTERN_C
extern JSObject *
js_InitDateClass(JSContext *cx, JSObject *obj);
/*
* These functions provide a C interface to the date/time object
*/
extern JS_FRIEND_API(JSObject*)
js_NewDateObject(JSContext* cx, int year, int mon, int mday,
int hour, int min, int sec);
extern JS_FRIEND_API(int)
js_DateGetYear(JSContext *cx, JSObject* obj);
extern JS_FRIEND_API(int)
js_DateGetMonth(JSContext *cx, JSObject* obj);
extern JS_FRIEND_API(int)
js_DateGetDate(JSContext *cx, JSObject* obj);
extern JS_FRIEND_API(int)
js_DateGetHours(JSContext *cx, JSObject* obj);
extern JS_FRIEND_API(int)
js_DateGetMinutes(JSContext *cx, JSObject* obj);
extern JS_FRIEND_API(int)
js_DateGetSeconds(JSContext *cx, JSObject* obj);
extern JS_FRIEND_API(void)
js_DateSetYear(JSContext *cx, JSObject *obj, int year);
extern JS_FRIEND_API(void)
js_DateSetMonth(JSContext *cx, JSObject *obj, int year);
extern JS_FRIEND_API(void)
js_DateSetDate(JSContext *cx, JSObject *obj, int date);
extern JS_FRIEND_API(void)
js_DateSetHours(JSContext *cx, JSObject *obj, int hours);
extern JS_FRIEND_API(void)
js_DateSetMinutes(JSContext *cx, JSObject *obj, int minutes);
extern JS_FRIEND_API(void)
js_DateSetSeconds(JSContext *cx, JSObject *obj, int seconds);
JS_END_EXTERN_C
#endif /* jsdate_h___ */

View File

@@ -1,859 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS debugging API.
*/
#include "jsstddef.h"
#include <string.h>
#include "jstypes.h"
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#include "jsclist.h"
#include "jsapi.h"
#include "jscntxt.h"
#include "jsconfig.h"
#include "jsdbgapi.h"
#include "jsfun.h"
#include "jsgc.h"
#include "jsinterp.h"
#include "jslock.h"
#include "jsobj.h"
#include "jsopcode.h"
#include "jsscope.h"
#include "jsscript.h"
#include "jsstr.h"
typedef struct JSTrap {
JSCList links;
JSScript *script;
jsbytecode *pc;
JSOp op;
JSTrapHandler handler;
void *closure;
} JSTrap;
static JSTrap *
FindTrap(JSRuntime *rt, JSScript *script, jsbytecode *pc)
{
JSTrap *trap;
for (trap = (JSTrap *)rt->trapList.next;
trap != (JSTrap *)&rt->trapList;
trap = (JSTrap *)trap->links.next) {
if (trap->script == script && trap->pc == pc)
return trap;
}
return NULL;
}
void
js_PatchOpcode(JSContext *cx, JSScript *script, jsbytecode *pc, JSOp op)
{
JSTrap *trap;
trap = FindTrap(cx->runtime, script, pc);
if (trap)
trap->op = op;
else
*pc = (jsbytecode)op;
}
JS_PUBLIC_API(JSBool)
JS_SetTrap(JSContext *cx, JSScript *script, jsbytecode *pc,
JSTrapHandler handler, void *closure)
{
JSRuntime *rt;
JSTrap *trap;
rt = cx->runtime;
trap = FindTrap(rt, script, pc);
if (trap) {
/* Restore opcode at pc so it can be saved again. */
*pc = (jsbytecode)trap->op;
} else {
trap = JS_malloc(cx, sizeof *trap);
if (!trap || !js_AddRoot(cx, &trap->closure, "trap->closure")) {
if (trap)
JS_free(cx, trap);
return JS_FALSE;
}
}
JS_APPEND_LINK(&trap->links, &rt->trapList);
trap->script = script;
trap->pc = pc;
trap->op = (JSOp)*pc;
trap->handler = handler;
trap->closure = closure;
*pc = JSOP_TRAP;
return JS_TRUE;
}
JS_PUBLIC_API(JSOp)
JS_GetTrapOpcode(JSContext *cx, JSScript *script, jsbytecode *pc)
{
JSTrap *trap;
trap = FindTrap(cx->runtime, script, pc);
if (!trap) {
JS_ASSERT(0); /* XXX can't happen */
return JSOP_LIMIT;
}
return trap->op;
}
static void
DestroyTrap(JSContext *cx, JSTrap *trap)
{
JS_REMOVE_LINK(&trap->links);
*trap->pc = (jsbytecode)trap->op;
js_RemoveRoot(cx, &trap->closure);
JS_free(cx, trap);
}
JS_PUBLIC_API(void)
JS_ClearTrap(JSContext *cx, JSScript *script, jsbytecode *pc,
JSTrapHandler *handlerp, void **closurep)
{
JSTrap *trap;
trap = FindTrap(cx->runtime, script, pc);
if (handlerp)
*handlerp = trap ? trap->handler : NULL;
if (closurep)
*closurep = trap ? trap->closure : NULL;
if (trap)
DestroyTrap(cx, trap);
}
JS_PUBLIC_API(void)
JS_ClearScriptTraps(JSContext *cx, JSScript *script)
{
JSRuntime *rt;
JSTrap *trap, *next;
rt = cx->runtime;
for (trap = (JSTrap *)rt->trapList.next;
trap != (JSTrap *)&rt->trapList;
trap = next) {
next = (JSTrap *)trap->links.next;
if (trap->script == script)
DestroyTrap(cx, trap);
}
}
JS_PUBLIC_API(void)
JS_ClearAllTraps(JSContext *cx)
{
JSRuntime *rt;
JSTrap *trap, *next;
rt = cx->runtime;
for (trap = (JSTrap *)rt->trapList.next;
trap != (JSTrap *)&rt->trapList;
trap = next) {
next = (JSTrap *)trap->links.next;
DestroyTrap(cx, trap);
}
}
JS_PUBLIC_API(JSTrapStatus)
JS_HandleTrap(JSContext *cx, JSScript *script, jsbytecode *pc, jsval *rval)
{
JSTrap *trap;
JSTrapStatus status;
jsint op;
trap = FindTrap(cx->runtime, script, pc);
if (!trap) {
JS_ASSERT(0); /* XXX can't happen */
return JSTRAP_ERROR;
}
/*
* It's important that we not use 'trap->' after calling the callback --
* the callback might remove the trap!
*/
op = (jsint)trap->op;
status = trap->handler(cx, script, pc, rval, trap->closure);
if (status == JSTRAP_CONTINUE) {
/* By convention, return the true op to the interpreter in rval. */
*rval = INT_TO_JSVAL(op);
}
return status;
}
JS_PUBLIC_API(JSBool)
JS_SetInterrupt(JSRuntime *rt, JSTrapHandler handler, void *closure)
{
rt->interruptHandler = handler;
rt->interruptHandlerData = closure;
return JS_TRUE;
}
JS_PUBLIC_API(JSBool)
JS_ClearInterrupt(JSRuntime *rt, JSTrapHandler *handlerp, void **closurep)
{
if (handlerp)
*handlerp = (JSTrapHandler)rt->interruptHandler;
if (closurep)
*closurep = rt->interruptHandlerData;
rt->interruptHandler = 0;
rt->interruptHandlerData = 0;
return JS_TRUE;
}
typedef struct JSWatchPoint {
JSCList links;
JSObject *object; /* weak link, see js_FinalizeObject */
jsval userid;
JSScopeProperty *sprop;
JSPropertyOp setter;
JSWatchPointHandler handler;
void *closure;
jsrefcount nrefs;
} JSWatchPoint;
#define HoldWatchPoint(wp) ((wp)->nrefs++)
static void
DropWatchPoint(JSContext *cx, JSWatchPoint *wp)
{
if (--wp->nrefs != 0)
return;
wp->sprop->setter = wp->setter;
JS_LOCK_OBJ_VOID(cx, wp->object,
js_DropScopeProperty(cx, (JSScope *)wp->object->map,
wp->sprop));
JS_REMOVE_LINK(&wp->links);
js_RemoveRoot(cx, &wp->closure);
JS_free(cx, wp);
}
static JSWatchPoint *
FindWatchPoint(JSRuntime *rt, JSObject *obj, jsval userid)
{
JSWatchPoint *wp;
for (wp = (JSWatchPoint *)rt->watchPointList.next;
wp != (JSWatchPoint *)&rt->watchPointList;
wp = (JSWatchPoint *)wp->links.next) {
if (wp->object == obj && wp->userid == userid)
return wp;
}
return NULL;
}
JSScopeProperty *
js_FindWatchPoint(JSRuntime *rt, JSObject *obj, jsval userid)
{
JSWatchPoint *wp;
wp = FindWatchPoint(rt, obj, userid);
if (!wp)
return NULL;
return wp->sprop;
}
JSBool DLL_CALLBACK
js_watch_set(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
{
JSRuntime *rt;
JSWatchPoint *wp;
JSScopeProperty *sprop;
JSSymbol *sym;
jsval userid, value;
jsid symid;
JSScope *scope;
JSAtom *atom;
JSBool ok;
rt = cx->runtime;
for (wp = (JSWatchPoint *)rt->watchPointList.next;
wp != (JSWatchPoint *)&rt->watchPointList;
wp = (JSWatchPoint *)wp->links.next) {
sprop = wp->sprop;
if (wp->object == obj && sprop->id == id) {
JS_LOCK_OBJ(cx, obj);
sym = sprop->symbols;
if (!sym) {
userid = wp->userid;
atom = NULL;
if (JSVAL_IS_INT(userid)) {
symid = (jsid)userid;
} else {
atom = js_ValueToStringAtom(cx, userid);
if (!atom) {
JS_UNLOCK_OBJ(cx, obj);
return JS_FALSE;
}
symid = (jsid)atom;
}
scope = (JSScope *) obj->map;
JS_ASSERT(scope->props);
ok = LOCKED_OBJ_GET_CLASS(obj)->addProperty(cx, obj, sprop->id,
&value);
if (!ok) {
JS_UNLOCK_OBJ(cx, obj);
return JS_FALSE;
}
ok = (scope->ops->add(cx, scope, symid, sprop) != NULL);
if (!ok) {
JS_UNLOCK_OBJ(cx, obj);
return JS_FALSE;
}
sym = sprop->symbols;
}
JS_UNLOCK_OBJ(cx, obj);
HoldWatchPoint(wp);
ok = wp->handler(cx, obj, js_IdToValue(sym_id(sym)),
OBJ_GET_SLOT(cx, obj, wp->sprop->slot), vp,
wp->closure);
if (ok)
ok = wp->setter(cx, obj, id, vp);
DropWatchPoint(cx, wp);
return ok;
}
}
JS_ASSERT(0); /* XXX can't happen */
return JS_FALSE;
}
JS_PUBLIC_API(JSBool)
JS_SetWatchPoint(JSContext *cx, JSObject *obj, jsval id,
JSWatchPointHandler handler, void *closure)
{
JSAtom *atom;
jsid symid;
JSObject *pobj;
JSScopeProperty *sprop;
JSRuntime *rt;
JSWatchPoint *wp;
if (!OBJ_IS_NATIVE(obj)) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_CANT_WATCH,
OBJ_GET_CLASS(cx, obj)->name);
return JS_FALSE;
}
if (JSVAL_IS_INT(id)) {
symid = (jsid)id;
atom = NULL;
} else {
atom = js_ValueToStringAtom(cx, id);
if (!atom)
return JS_FALSE;
symid = (jsid)atom;
}
if (!js_LookupProperty(cx, obj, symid, &pobj, (JSProperty **)&sprop))
return JS_FALSE;
rt = cx->runtime;
if (!sprop) {
/* Check for a deleted symbol watchpoint, which holds its property. */
sprop = js_FindWatchPoint(rt, obj, id);
if (sprop) {
#ifdef JS_THREADSAFE
/* Emulate js_LookupProperty if thread-safe. */
JS_LOCK_OBJ(cx, obj);
sprop->nrefs++;
#endif
} else {
/* Make a new property in obj so we can watch for the first set. */
if (!js_DefineProperty(cx, obj, symid, JSVAL_VOID, NULL, NULL, 0,
(JSProperty **)&sprop)) {
sprop = NULL;
}
}
} else if (pobj != obj) {
/* Clone the prototype property so we can watch the right object. */
jsval value;
JSPropertyOp getter, setter;
uintN attrs;
if (OBJ_IS_NATIVE(pobj)) {
value = LOCKED_OBJ_GET_SLOT(pobj, sprop->slot);
} else {
if (!OBJ_GET_PROPERTY(cx, pobj, id, &value)) {
OBJ_DROP_PROPERTY(cx, pobj, (JSProperty *)sprop);
return JS_FALSE;
}
}
getter = sprop->getter;
setter = sprop->setter;
attrs = sprop->attrs;
OBJ_DROP_PROPERTY(cx, pobj, (JSProperty *)sprop);
if (!js_DefineProperty(cx, obj, symid, value, getter, setter, attrs,
(JSProperty **)&sprop)) {
sprop = NULL;
}
}
if (!sprop)
return JS_FALSE;
wp = FindWatchPoint(rt, obj, id);
if (!wp) {
wp = JS_malloc(cx, sizeof *wp);
if (!wp)
return JS_FALSE;
if (!js_AddRoot(cx, &wp->closure, "wp->closure")) {
JS_free(cx, wp);
return JS_FALSE;
}
JS_APPEND_LINK(&wp->links, &rt->watchPointList);
wp->object = obj;
wp->userid = id;
wp->sprop = js_HoldScopeProperty(cx, (JSScope *)obj->map, sprop);
wp->setter = sprop->setter;
sprop->setter = js_watch_set;
wp->nrefs = 1;
}
wp->handler = handler;
wp->closure = closure;
OBJ_DROP_PROPERTY(cx, obj, (JSProperty *)sprop);
return JS_TRUE;
}
JS_PUBLIC_API(void)
JS_ClearWatchPoint(JSContext *cx, JSObject *obj, jsval id,
JSWatchPointHandler *handlerp, void **closurep)
{
JSRuntime *rt;
JSWatchPoint *wp;
rt = cx->runtime;
for (wp = (JSWatchPoint *)rt->watchPointList.next;
wp != (JSWatchPoint *)&rt->watchPointList;
wp = (JSWatchPoint *)wp->links.next) {
if (wp->object == obj && wp->userid == id) {
if (handlerp)
*handlerp = wp->handler;
if (closurep)
*closurep = wp->closure;
DropWatchPoint(cx, wp);
return;
}
}
if (handlerp)
*handlerp = NULL;
if (closurep)
*closurep = NULL;
}
JS_PUBLIC_API(void)
JS_ClearWatchPointsForObject(JSContext *cx, JSObject *obj)
{
JSRuntime *rt;
JSWatchPoint *wp, *next;
rt = cx->runtime;
for (wp = (JSWatchPoint *)rt->watchPointList.next;
wp != (JSWatchPoint *)&rt->watchPointList;
wp = next) {
next = (JSWatchPoint *)wp->links.next;
if (wp->object == obj)
DropWatchPoint(cx, wp);
}
}
JS_PUBLIC_API(void)
JS_ClearAllWatchPoints(JSContext *cx)
{
JSRuntime *rt;
JSWatchPoint *wp, *next;
rt = cx->runtime;
for (wp = (JSWatchPoint *)rt->watchPointList.next;
wp != (JSWatchPoint *)&rt->watchPointList;
wp = next) {
next = (JSWatchPoint *)wp->links.next;
DropWatchPoint(cx, wp);
}
}
JS_PUBLIC_API(uintN)
JS_PCToLineNumber(JSContext *cx, JSScript *script, jsbytecode *pc)
{
return js_PCToLineNumber(script, pc);
}
JS_PUBLIC_API(jsbytecode *)
JS_LineNumberToPC(JSContext *cx, JSScript *script, uintN lineno)
{
return js_LineNumberToPC(script, lineno);
}
JS_PUBLIC_API(JSScript *)
JS_GetFunctionScript(JSContext *cx, JSFunction *fun)
{
return fun->script;
}
JS_PUBLIC_API(JSPrincipals *)
JS_GetScriptPrincipals(JSContext *cx, JSScript *script)
{
return script->principals;
}
/*
* Stack Frame Iterator
*/
JS_PUBLIC_API(JSStackFrame *)
JS_FrameIterator(JSContext *cx, JSStackFrame **iteratorp)
{
*iteratorp = (*iteratorp == NULL) ? cx->fp : (*iteratorp)->down;
return *iteratorp;
}
JS_PUBLIC_API(JSScript *)
JS_GetFrameScript(JSContext *cx, JSStackFrame *fp)
{
return fp->script;
}
JS_PUBLIC_API(jsbytecode *)
JS_GetFramePC(JSContext *cx, JSStackFrame *fp)
{
return fp->pc;
}
JS_PUBLIC_API(void *)
JS_GetFrameAnnotation(JSContext *cx, JSStackFrame *fp)
{
if (fp->annotation) {
JSPrincipals *principals = fp->script
? fp->script->principals
: NULL;
if (principals == NULL)
return NULL;
if (principals->globalPrivilegesEnabled(cx, principals)) {
/*
* Only give out an annotation if privileges have not
* been revoked globally.
*/
return fp->annotation;
}
}
return NULL;
}
JS_PUBLIC_API(void)
JS_SetFrameAnnotation(JSContext *cx, JSStackFrame *fp, void *annotation)
{
fp->annotation = annotation;
}
JS_PUBLIC_API(void *)
JS_GetFramePrincipalArray(JSContext *cx, JSStackFrame *fp)
{
JSPrincipals *principals = fp->script
? fp->script->principals
: NULL;
return principals
? principals->getPrincipalArray(cx, principals)
: NULL;
}
JS_PUBLIC_API(JSBool)
JS_IsNativeFrame(JSContext *cx, JSStackFrame *fp)
{
return fp->fun && fp->fun->call;
}
/* this is deprecated, use JS_GetFrameScopeChain instead */
JS_PUBLIC_API(JSObject *)
JS_GetFrameObject(JSContext *cx, JSStackFrame *fp)
{
return fp->scopeChain;
}
JS_PUBLIC_API(JSObject *)
JS_GetFrameScopeChain(JSContext *cx, JSStackFrame *fp)
{
/* Force creation of argument and call objects if not yet created */
JS_GetFrameCallObject(cx, fp);
return fp->scopeChain;
}
JS_PUBLIC_API(JSObject *)
JS_GetFrameCallObject(JSContext *cx, JSStackFrame *fp)
{
if (! fp->fun)
return NULL;
/* Force creation of argument object if not yet created */
js_GetArgsObject(cx, fp);
#if JS_HAS_CALL_OBJECT
return js_GetCallObject(cx, fp, NULL, NULL);
#else
return NULL;
#endif /* JS_HAS_CALL_OBJECT */
}
JS_PUBLIC_API(JSObject *)
JS_GetFrameThis(JSContext *cx, JSStackFrame *fp)
{
return fp->thisp;
}
JS_PUBLIC_API(JSFunction *)
JS_GetFrameFunction(JSContext *cx, JSStackFrame *fp)
{
return fp->fun;
}
JS_PUBLIC_API(JSBool)
JS_IsContructorFrame(JSContext *cx, JSStackFrame *fp)
{
return fp->constructing;
}
JS_PUBLIC_API(JSBool)
JS_IsDebuggerFrame(JSContext *cx, JSStackFrame *fp)
{
return fp->debugging;
}
JS_PUBLIC_API(jsval)
JS_GetFrameReturnValue(JSContext *cx, JSStackFrame *fp)
{
return fp->rval;
}
JS_PUBLIC_API(void)
JS_SetFrameReturnValue(JSContext *cx, JSStackFrame *fp, jsval rval)
{
fp->rval = rval;
}
/************************************************************************/
JS_PUBLIC_API(const char *)
JS_GetScriptFilename(JSContext *cx, JSScript *script)
{
return script->filename;
}
JS_PUBLIC_API(uintN)
JS_GetScriptBaseLineNumber(JSContext *cx, JSScript *script)
{
return script->lineno;
}
JS_PUBLIC_API(uintN)
JS_GetScriptLineExtent(JSContext *cx, JSScript *script)
{
return js_GetScriptLineExtent(script);
}
/***************************************************************************/
JS_PUBLIC_API(void)
JS_SetNewScriptHook(JSRuntime *rt, JSNewScriptHook hook, void *callerdata)
{
rt->newScriptHook = hook;
rt->newScriptHookData = callerdata;
}
JS_PUBLIC_API(void)
JS_SetDestroyScriptHook(JSRuntime *rt, JSDestroyScriptHook hook,
void *callerdata)
{
rt->destroyScriptHook = hook;
rt->destroyScriptHookData = callerdata;
}
/***************************************************************************/
JS_PUBLIC_API(JSBool)
JS_EvaluateInStackFrame(JSContext *cx, JSStackFrame *fp,
const char *bytes, uintN length,
const char *filename, uintN lineno,
jsval *rval)
{
JSScript *script;
JSBool ok;
script = JS_CompileScriptForPrincipals(cx, fp->scopeChain,
fp->script ? fp->script->principals
: NULL,
bytes, length, filename, lineno);
if (!script)
return JS_FALSE;
ok = js_Execute(cx, fp->scopeChain, script, fp->fun, fp, JS_TRUE, rval);
js_DestroyScript(cx, script);
return ok;
}
/************************************************************************/
JS_PUBLIC_API(JSScopeProperty *)
JS_PropertyIterator(JSObject *obj, JSScopeProperty **iteratorp)
{
JSScopeProperty *sprop;
JSScope *scope;
sprop = *iteratorp;
scope = (JSScope *) obj->map;
sprop = (sprop == NULL) ? scope->props : sprop->next;
*iteratorp = sprop;
return sprop;
}
JS_PUBLIC_API(JSBool)
JS_GetPropertyDesc(JSContext *cx, JSObject *obj, JSScopeProperty *sprop,
JSPropertyDesc *pd)
{
JSSymbol *sym;
sym = sprop->symbols;
pd->id = sym ? js_IdToValue(sym_id(sym)) : JSVAL_VOID;
if (!sym || !js_GetProperty(cx, obj, sym_id(sym), &pd->value))
pd->value = OBJ_GET_SLOT(cx, obj, sprop->slot);
pd->flags = ((sprop->attrs & JSPROP_ENUMERATE) ? JSPD_ENUMERATE : 0)
| ((sprop->attrs & JSPROP_READONLY) ? JSPD_READONLY : 0)
| ((sprop->attrs & JSPROP_PERMANENT) ? JSPD_PERMANENT : 0)
#if JS_HAS_CALL_OBJECT
| ((sprop->getter == js_GetCallVariable) ? JSPD_VARIABLE : 0)
#endif /* JS_HAS_CALL_OBJECT */
| ((sprop->getter == js_GetArgument) ? JSPD_ARGUMENT : 0)
| ((sprop->getter == js_GetLocalVariable) ? JSPD_VARIABLE : 0);
#if JS_HAS_CALL_OBJECT
/* for Call Object 'real' getter isn't passed in to us */
if (OBJ_GET_CLASS(cx, obj) == &js_CallClass &&
OBJ_GET_CLASS(cx, obj)->getProperty == sprop->getter)
pd->flags |= JSPD_ARGUMENT;
#endif /* JS_HAS_CALL_OBJECT */
pd->spare = 0;
pd->slot = (pd->flags & (JSPD_ARGUMENT | JSPD_VARIABLE))
? JSVAL_TO_INT(sprop->id)
: 0;
if (!sym || !sym->next || (pd->flags & (JSPD_ARGUMENT | JSPD_VARIABLE))) {
pd->alias = JSVAL_VOID;
} else {
pd->alias = js_IdToValue(sym_id(sym->next));
pd->flags |= JSPD_ALIAS;
}
return JS_TRUE;
}
JS_PUBLIC_API(JSBool)
JS_GetPropertyDescArray(JSContext *cx, JSObject *obj, JSPropertyDescArray *pda)
{
JSScope *scope;
uint32 i, n;
JSPropertyDesc *pd;
JSScopeProperty *sprop;
jsval state;
jsid num_prop;
if (!OBJ_ENUMERATE(cx, obj, JSENUMERATE_INIT, &state, &num_prop))
return JS_FALSE;
scope = (JSScope *)obj->map;
/* have no props, or object's scope has not mutated from that of proto */
if (!scope->props ||
(OBJ_GET_PROTO(cx,obj) &&
scope == (JSScope *)(OBJ_GET_PROTO(cx,obj)->map))) {
pda->length = 0;
pda->array = NULL;
return JS_TRUE;
}
n = scope->map.freeslot;
pd = JS_malloc(cx, (size_t)n * sizeof(JSPropertyDesc));
if (!pd)
return JS_FALSE;
i = 0;
for (sprop = scope->props; sprop; sprop = sprop->next) {
if (!js_AddRoot(cx, &pd[i].id, NULL))
goto bad;
if (!js_AddRoot(cx, &pd[i].value, NULL))
goto bad;
JS_GetPropertyDesc(cx, obj, sprop, &pd[i]);
if ((pd[i].flags & JSPD_ALIAS) && !js_AddRoot(cx, &pd[i].alias, NULL))
goto bad;
if (++i == n)
break;
}
pda->length = i;
pda->array = pd;
return JS_TRUE;
bad:
pda->length = i + 1;
pda->array = pd;
JS_PutPropertyDescArray(cx, pda);
return JS_FALSE;
}
JS_PUBLIC_API(void)
JS_PutPropertyDescArray(JSContext *cx, JSPropertyDescArray *pda)
{
JSPropertyDesc *pd;
uint32 i;
pd = pda->array;
for (i = 0; i < pda->length; i++) {
js_RemoveRoot(cx, &pd[i].id);
js_RemoveRoot(cx, &pd[i].value);
if (pd[i].flags & JSPD_ALIAS)
js_RemoveRoot(cx, &pd[i].alias);
}
JS_free(cx, pd);
}
/************************************************************************/
JS_PUBLIC_API(JSBool)
JS_SetDebuggerHandler(JSRuntime *rt, JSTrapHandler handler, void *closure)
{
rt->debuggerHandler = handler;
rt->debuggerHandlerData = closure;
return JS_TRUE;
}
JS_PUBLIC_API(JSBool)
JS_SetSourceHandler(JSRuntime *rt, JSSourceHandler handler, void *closure)
{
rt->sourceHandler = handler;
rt->sourceHandlerData = closure;
return JS_TRUE;
}
JS_PUBLIC_API(JSBool)
JS_SetExecuteHook(JSRuntime *rt, JSInterpreterHook hook, void *closure)
{
rt->executeHook = hook;
rt->executeHookData = closure;
return JS_TRUE;
}
extern JS_PUBLIC_API(JSBool)
JS_SetCallHook(JSRuntime *rt, JSInterpreterHook hook, void *closure)
{
rt->callHook = hook;
rt->callHookData = closure;
return JS_TRUE;
}

View File

@@ -1,245 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsdbgapi_h___
#define jsdbgapi_h___
/*
* JS debugger API.
*/
#include "jsapi.h"
#include "jsopcode.h"
#include "jsprvtd.h"
JS_BEGIN_EXTERN_C
extern void
js_PatchOpcode(JSContext *cx, JSScript *script, jsbytecode *pc, JSOp op);
extern JS_PUBLIC_API(JSBool)
JS_SetTrap(JSContext *cx, JSScript *script, jsbytecode *pc,
JSTrapHandler handler, void *closure);
extern JS_PUBLIC_API(JSOp)
JS_GetTrapOpcode(JSContext *cx, JSScript *script, jsbytecode *pc);
extern JS_PUBLIC_API(void)
JS_ClearTrap(JSContext *cx, JSScript *script, jsbytecode *pc,
JSTrapHandler *handlerp, void **closurep);
extern JS_PUBLIC_API(void)
JS_ClearScriptTraps(JSContext *cx, JSScript *script);
extern JS_PUBLIC_API(void)
JS_ClearAllTraps(JSContext *cx);
extern JS_PUBLIC_API(JSTrapStatus)
JS_HandleTrap(JSContext *cx, JSScript *script, jsbytecode *pc, jsval *rval);
extern JS_PUBLIC_API(JSBool)
JS_SetInterrupt(JSRuntime *rt, JSTrapHandler handler, void *closure);
extern JS_PUBLIC_API(JSBool)
JS_ClearInterrupt(JSRuntime *rt, JSTrapHandler *handlerp, void **closurep);
/************************************************************************/
extern JS_PUBLIC_API(JSBool)
JS_SetWatchPoint(JSContext *cx, JSObject *obj, jsval id,
JSWatchPointHandler handler, void *closure);
extern JS_PUBLIC_API(void)
JS_ClearWatchPoint(JSContext *cx, JSObject *obj, jsval id,
JSWatchPointHandler *handlerp, void **closurep);
extern JS_PUBLIC_API(void)
JS_ClearWatchPointsForObject(JSContext *cx, JSObject *obj);
extern JS_PUBLIC_API(void)
JS_ClearAllWatchPoints(JSContext *cx);
#ifdef JS_HAS_OBJ_WATCHPOINT
/*
* Hide these non-API function prototypes by testing whether the internal
* header file "jsconfig.h" has been included.
*/
extern JSScopeProperty *
js_FindWatchPoint(JSRuntime *rt, JSObject *obj, jsval userid);
extern JSBool DLL_CALLBACK
js_watch_set(JSContext *cx, JSObject *obj, jsval id, jsval *vp);
#endif
/************************************************************************/
extern JS_PUBLIC_API(uintN)
JS_PCToLineNumber(JSContext *cx, JSScript *script, jsbytecode *pc);
extern JS_PUBLIC_API(jsbytecode *)
JS_LineNumberToPC(JSContext *cx, JSScript *script, uintN lineno);
extern JS_PUBLIC_API(JSScript *)
JS_GetFunctionScript(JSContext *cx, JSFunction *fun);
extern JS_PUBLIC_API(JSPrincipals *)
JS_GetScriptPrincipals(JSContext *cx, JSScript *script);
/*
* Stack Frame Iterator
*
* Used to iterate through the JS stack frames to extract
* information from the frames.
*/
extern JS_PUBLIC_API(JSStackFrame *)
JS_FrameIterator(JSContext *cx, JSStackFrame **iteratorp);
extern JS_PUBLIC_API(JSScript *)
JS_GetFrameScript(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(jsbytecode *)
JS_GetFramePC(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(JSBool)
JS_IsNativeFrame(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(void *)
JS_GetFrameAnnotation(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(void)
JS_SetFrameAnnotation(JSContext *cx, JSStackFrame *fp, void *annotation);
extern JS_PUBLIC_API(void *)
JS_GetFramePrincipalArray(JSContext *cx, JSStackFrame *fp);
/* this is deprecated, use JS_GetFrameScopeChain instead */
extern JS_PUBLIC_API(JSObject *)
JS_GetFrameObject(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(JSObject *)
JS_GetFrameScopeChain(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(JSObject *)
JS_GetFrameCallObject(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(JSObject *)
JS_GetFrameThis(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(JSFunction *)
JS_GetFrameFunction(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(JSBool)
JS_IsContructorFrame(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(JSBool)
JS_IsDebuggerFrame(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(jsval)
JS_GetFrameReturnValue(JSContext *cx, JSStackFrame *fp);
extern JS_PUBLIC_API(void)
JS_SetFrameReturnValue(JSContext *cx, JSStackFrame *fp, jsval rval);
/************************************************************************/
extern JS_PUBLIC_API(const char *)
JS_GetScriptFilename(JSContext *cx, JSScript *script);
extern JS_PUBLIC_API(uintN)
JS_GetScriptBaseLineNumber(JSContext *cx, JSScript *script);
extern JS_PUBLIC_API(uintN)
JS_GetScriptLineExtent(JSContext *cx, JSScript *script);
/************************************************************************/
/*
* Hook setters for script creation and destruction, see jsprvtd.h for the
* typedefs. These macros provide binary compatibility and newer, shorter
* synonyms.
*/
#define JS_SetNewScriptHook JS_SetNewScriptHookProc
#define JS_SetDestroyScriptHook JS_SetDestroyScriptHookProc
extern JS_PUBLIC_API(void)
JS_SetNewScriptHook(JSRuntime *rt, JSNewScriptHook hook, void *callerdata);
extern JS_PUBLIC_API(void)
JS_SetDestroyScriptHook(JSRuntime *rt, JSDestroyScriptHook hook,
void *callerdata);
/************************************************************************/
extern JS_PUBLIC_API(JSBool)
JS_EvaluateInStackFrame(JSContext *cx, JSStackFrame *fp,
const char *bytes, uintN length,
const char *filename, uintN lineno,
jsval *rval);
/************************************************************************/
typedef struct JSPropertyDesc {
jsval id; /* primary id, a string or int */
jsval value; /* property value */
uint8 flags; /* flags, see below */
uint8 spare; /* unused */
uint16 slot; /* argument/variable slot */
jsval alias; /* alias id if JSPD_ALIAS flag */
} JSPropertyDesc;
#define JSPD_ENUMERATE 0x01 /* visible to for/in loop */
#define JSPD_READONLY 0x02 /* assignment is error */
#define JSPD_PERMANENT 0x04 /* property cannot be deleted */
#define JSPD_ALIAS 0x08 /* property has an alias id */
#define JSPD_ARGUMENT 0x10 /* argument to function */
#define JSPD_VARIABLE 0x20 /* local variable in function */
typedef struct JSPropertyDescArray {
uint32 length; /* number of elements in array */
JSPropertyDesc *array; /* alloc'd by Get, freed by Put */
} JSPropertyDescArray;
extern JS_PUBLIC_API(JSScopeProperty *)
JS_PropertyIterator(JSObject *obj, JSScopeProperty **iteratorp);
extern JS_PUBLIC_API(JSBool)
JS_GetPropertyDesc(JSContext *cx, JSObject *obj, JSScopeProperty *sprop,
JSPropertyDesc *pd);
extern JS_PUBLIC_API(JSBool)
JS_GetPropertyDescArray(JSContext *cx, JSObject *obj, JSPropertyDescArray *pda);
extern JS_PUBLIC_API(void)
JS_PutPropertyDescArray(JSContext *cx, JSPropertyDescArray *pda);
/************************************************************************/
extern JS_PUBLIC_API(JSBool)
JS_SetDebuggerHandler(JSRuntime *rt, JSTrapHandler handler, void *closure);
extern JS_PUBLIC_API(JSBool)
JS_SetSourceHandler(JSRuntime *rt, JSSourceHandler handler, void *closure);
extern JS_PUBLIC_API(JSBool)
JS_SetExecuteHook(JSRuntime *rt, JSInterpreterHook hook, void *closure);
extern JS_PUBLIC_API(JSBool)
JS_SetCallHook(JSRuntime *rt, JSInterpreterHook hook, void *closure);
JS_END_EXTERN_C
#endif /* jsdbgapi_h___ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,54 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsdtoa_h___
#define jsdtoa_h___
/*
* Public interface to portable double-precision floating point to string
* and back conversion package.
*/
#include "jscompat.h"
JS_BEGIN_EXTERN_C
/*
* PR_strtod() returns as a double-precision floating-point number
* the value represented by the character string pointed to by
* s00. The string is scanned up to the first unrecognized
* character.
* If the value of se is not (char **)NULL, a pointer to
* the character terminating the scan is returned in the location pointed
* to by se. If no number can be formed, se is set to s00r, and
* zero is returned.
*/
extern PUBLIC_API(double)
PR_strtod(const char *s00, char **se);
/*
* PR_cnvtf()
* conversion routines for floating point
* prcsn - number of digits of precision to generate floating
* point value.
*/
extern PUBLIC_API(void)
PR_cnvtf(char *buf, intN bufsz, intN prcsn, double dval);
JS_END_EXTERN_C
#endif /* jsdtoa_h___ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,366 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsemit_h___
#define jsemit_h___
/*
* JS bytecode generation.
*/
#include "jsstddef.h"
#include "jstypes.h"
#include "jsatom.h"
#include "jsopcode.h"
#include "jsprvtd.h"
#include "jspubtd.h"
JS_BEGIN_EXTERN_C
typedef enum JSStmtType {
STMT_BLOCK = 0, /* compound statement: { s1[;... sN] } */
STMT_LABEL = 1, /* labeled statement: l: s */
STMT_IF = 2, /* if (then) statement */
STMT_ELSE = 3, /* else statement */
STMT_SWITCH = 4, /* switch statement */
STMT_WITH = 5, /* with statement */
STMT_TRY = 6, /* try statement */
STMT_CATCH = 7, /* catch block */
STMT_FINALLY = 8, /* finally statement */
STMT_DO_LOOP = 9, /* do/while loop statement */
STMT_FOR_LOOP = 10, /* for loop statement */
STMT_FOR_IN_LOOP = 11, /* for/in loop statement */
STMT_WHILE_LOOP = 12 /* while loop statement */
} JSStmtType;
#define STMT_IS_LOOP(stmt) ((stmt)->type >= STMT_DO_LOOP)
typedef struct JSStmtInfo JSStmtInfo;
struct JSStmtInfo {
JSStmtType type; /* statement type */
ptrdiff_t top; /* offset of loop top from cg base */
ptrdiff_t update; /* loop update offset (top if none) */
ptrdiff_t breaks; /* offset of last break in loop */
ptrdiff_t continues; /* offset of last continue in loop */
JSAtom *label; /* label name if type is STMT_LABEL */
JSStmtInfo *down; /* info for enclosing statement */
};
#define SET_STATEMENT_TOP(stmt, top) \
((stmt)->top = (stmt)->update = (top), (stmt)->breaks = (stmt)->continues = (-1))
struct JSTreeContext { /* tree context for semantic checks */
uint32 flags; /* statement state flags, see below */
uint32 tryCount; /* total count of try statements parsed */
JSStmtInfo *topStmt; /* top of statement info stack */
};
#define TCF_IN_FUNCTION 0x01 /* parsing inside function body */
#define TCF_RETURN_EXPR 0x02 /* function has 'return expr;' */
#define TCF_RETURN_VOID 0x04 /* function has 'return;' */
#define TCF_IN_FOR_INIT 0x08 /* parsing init expr of for; exclude 'in' */
#define TREE_CONTEXT_INIT(tc) \
((tc)->flags = 0, (tc)->tryCount = 0, (tc)->topStmt = NULL)
struct JSCodeGenerator {
void *codeMark; /* low watermark in cx->codePool */
void *tempMark; /* low watermark in cx->tempPool */
jsbytecode *base; /* base of JS bytecode vector */
jsbytecode *limit; /* one byte beyond end of bytecode */
jsbytecode *next; /* pointer to next free bytecode */
const char *filename; /* null or weak link to source filename */
uintN firstLine; /* first line, for js_NewScriptFromCG */
uintN currentLine; /* line number for tree-based srcnote gen */
JSPrincipals *principals; /* principals for constant folding eval */
JSTreeContext treeContext; /* for break/continue code generation */
JSAtomList atomList; /* literals indexed for mapping */
intN stackDepth; /* current stack depth in basic block */
uintN maxStackDepth; /* maximum stack depth so far */
jssrcnote *notes; /* source notes, see below */
uintN noteCount; /* number of source notes so far */
ptrdiff_t lastNoteOffset; /* code offset for last source note */
JSTryNote *tryBase; /* first exception handling note */
JSTryNote *tryNext; /* next available note */
size_t tryNoteSpace; /* # of bytes allocated at tryBase */
};
#define CG_CODE(cg,offset) ((cg)->base + (offset))
#define CG_OFFSET(cg) PTRDIFF((cg)->next, (cg)->base, jsbytecode)
/*
* Initialize cg to allocate bytecode space from cx->codePool, and srcnote
* space from cx->tempPool. Return true on success. Report an error and
* return false if the initial code segment can't be allocated.
*/
extern JS_FRIEND_API(JSBool)
js_InitCodeGenerator(JSContext *cx, JSCodeGenerator *cg,
const char *filename, uintN lineno,
JSPrincipals *principals);
/*
* Release cx->codePool and cx->tempPool to marks set by js_InitCodeGenerator.
*/
extern JS_FRIEND_API(void)
js_ResetCodeGenerator(JSContext *cx, JSCodeGenerator *cg);
/*
* Emit one bytecode.
*/
extern ptrdiff_t
js_Emit1(JSContext *cx, JSCodeGenerator *cg, JSOp op);
/*
* Emit two bytecodes, an opcode (op) with a byte of immediate operand (op1).
*/
extern ptrdiff_t
js_Emit2(JSContext *cx, JSCodeGenerator *cg, JSOp op, jsbytecode op1);
/*
* Emit three bytecodes, an opcode with two bytes of immediate operands.
*/
extern ptrdiff_t
js_Emit3(JSContext *cx, JSCodeGenerator *cg, JSOp op, jsbytecode op1,
jsbytecode op2);
/*
* Emit (1 + extra) bytecodes, for N bytes of op and its immediate operand.
*/
extern ptrdiff_t
js_EmitN(JSContext *cx, JSCodeGenerator *cg, JSOp op, size_t extra);
/*
* Unsafe macro to call js_SetJumpOffset and return false if it does.
*/
#define CHECK_AND_SET_JUMP_OFFSET(cx,cg,pc,off) \
JS_BEGIN_MACRO \
if (!js_SetJumpOffset(cx, cg, pc, off)) \
return JS_FALSE; \
JS_END_MACRO
#define CHECK_AND_SET_JUMP_OFFSET_AT(cx,cg,off) \
CHECK_AND_SET_JUMP_OFFSET(cx, cg, CG_CODE(cg,off), CG_OFFSET(cg) - (off))
extern JSBool
js_SetJumpOffset(JSContext *cx, JSCodeGenerator *cg, jsbytecode *pc,
ptrdiff_t off);
/*
* Push the C-stack-allocated struct at stmt onto the stmtInfo stack.
*/
extern void
js_PushStatement(JSTreeContext *tc, JSStmtInfo *stmt, JSStmtType type,
ptrdiff_t top);
/*
* Emit a break instruction, recording it for backpatching.
*/
extern ptrdiff_t
js_EmitBreak(JSContext *cx, JSCodeGenerator *cg, JSStmtInfo *stmt,
JSAtomListElement *label);
/*
* Emit a continue instruction, recording it for backpatching.
*/
extern ptrdiff_t
js_EmitContinue(JSContext *cx, JSCodeGenerator *cg, JSStmtInfo *stmt,
JSAtomListElement *label);
/*
* Pop tc->topStmt. If the top JSStmtInfo struct is not stack-allocated, it
* is up to the caller to free it.
*/
extern void
js_PopStatement(JSTreeContext *tc);
/*
* Like js_PopStatement(&cg->treeContext), also patch breaks and continues.
* May fail if a jump offset overflows.
*/
extern JSBool
js_PopStatementCG(JSContext *cx, JSCodeGenerator *cg);
/*
* Emit code into cg for the tree rooted at pn.
*/
extern JSBool
js_EmitTree(JSContext *cx, JSCodeGenerator *cg, JSParseNode *pn);
/*
* Emit code into cg for the tree rooted at body, then create a persistent
* script for fun from cg.
*/
extern JSBool
js_EmitFunctionBody(JSContext *cx, JSCodeGenerator *cg, JSParseNode *body,
JSFunction *fun);
/*
* Source notes generated along with bytecode for decompiling and debugging.
* A source note is a uint8 with 5 bits of type and 3 of offset from the pc of
* the previous note. If 3 bits of offset aren't enough, extended delta notes
* (SRC_XDELTA) consisting of 2 set high order bits followed by 6 offset bits
* are emitted before the next note. Some notes have operand offsets encoded
* immediately after them, in note bytes or byte-triples.
*
* At most one "gettable" note (i.e., a note of type other than SRC_NEWLINE,
* SRC_SETLINE, and SRC_XDELTA) applies to a given bytecode.
*
* NB: the js_SrcNoteName and js_SrcNoteArity arrays in jsemit.c are indexed
* by this enum, so their initializers need to match the order here.
*/
typedef enum JSSrcNoteType {
SRC_NULL = 0, /* terminates a note vector */
SRC_IF = 1, /* JSOP_IFEQ bytecode is from an if-then */
SRC_IF_ELSE = 2, /* JSOP_IFEQ bytecode is from an if-then-else */
SRC_WHILE = 3, /* JSOP_IFEQ is from a while loop */
SRC_FOR = 4, /* JSOP_NOP or JSOP_POP in for loop head */
SRC_CONTINUE = 5, /* JSOP_GOTO is a continue, not a break;
also used on JSOP_ENDINIT if extra comma
at end of array literal: [1,2,,] */
SRC_VAR = 6, /* JSOP_NAME/FORNAME with a var declaration */
SRC_PCDELTA = 7, /* offset from comma-operator to next POP,
or from CONDSWITCH to first CASE opcode */
SRC_ASSIGNOP = 8, /* += or another assign-op follows */
SRC_COND = 9, /* JSOP_IFEQ is from conditional ?: operator */
SRC_PAREN = 10, /* JSOP_NOP generated to mark user parens */
SRC_HIDDEN = 11, /* opcode shouldn't be decompiled */
SRC_PCBASE = 12, /* offset of first obj.prop.subprop bytecode */
SRC_LABEL = 13, /* JSOP_NOP for label: with atomid immediate */
SRC_LABELBRACE = 14, /* JSOP_NOP for label: {...} begin brace */
SRC_ENDBRACE = 15, /* JSOP_NOP for label: {...} end brace */
SRC_BREAK2LABEL = 16, /* JSOP_GOTO for 'break label' with atomid */
SRC_CONT2LABEL = 17, /* JSOP_GOTO for 'continue label' with atomid */
SRC_SWITCH = 18, /* JSOP_*SWITCH with offset to end of switch,
2nd off to first JSOP_CASE if condswitch */
SRC_FUNCDEF = 19, /* JSOP_NOP for function f() with atomid */
SRC_TRYFIN = 20, /* JSOP_NOP for try or finally section */
SRC_CATCH = 21, /* catch block has guard */
SRC_NEWLINE = 22, /* bytecode follows a source newline */
SRC_SETLINE = 23, /* a file-absolute source line number note */
SRC_XDELTA = 24 /* 24-31 are for extended delta notes */
} JSSrcNoteType;
#define SN_TYPE_BITS 5
#define SN_DELTA_BITS 3
#define SN_XDELTA_BITS 6
#define SN_TYPE_MASK (JS_BITMASK(SN_TYPE_BITS) << SN_DELTA_BITS)
#define SN_DELTA_MASK ((ptrdiff_t)JS_BITMASK(SN_DELTA_BITS))
#define SN_XDELTA_MASK ((ptrdiff_t)JS_BITMASK(SN_XDELTA_BITS))
#define SN_MAKE_NOTE(sn,t,d) (*(sn) = (jssrcnote) \
(((t) << SN_DELTA_BITS) \
| ((d) & SN_DELTA_MASK)))
#define SN_MAKE_XDELTA(sn,d) (*(sn) = (jssrcnote) \
((SRC_XDELTA << SN_DELTA_BITS) \
| ((d) & SN_XDELTA_MASK)))
#define SN_IS_XDELTA(sn) ((*(sn) >> SN_DELTA_BITS) >= SRC_XDELTA)
#define SN_TYPE(sn) (SN_IS_XDELTA(sn) ? SRC_XDELTA \
: *(sn) >> SN_DELTA_BITS)
#define SN_SET_TYPE(sn,type) SN_MAKE_NOTE(sn, type, SN_DELTA(sn))
#define SN_IS_GETTABLE(sn) (SN_TYPE(sn) < SRC_NEWLINE)
#define SN_DELTA(sn) ((ptrdiff_t)(SN_IS_XDELTA(sn) \
? *(sn) & SN_XDELTA_MASK \
: *(sn) & SN_DELTA_MASK))
#define SN_SET_DELTA(sn,delta) (SN_IS_XDELTA(sn) \
? SN_MAKE_XDELTA(sn, delta) \
: SN_MAKE_NOTE(sn, SN_TYPE(sn), delta))
#define SN_DELTA_LIMIT ((ptrdiff_t)JS_BIT(SN_DELTA_BITS))
#define SN_XDELTA_LIMIT ((ptrdiff_t)JS_BIT(SN_XDELTA_BITS))
/*
* Offset fields follow certain notes and are frequency-encoded: an offset in
* [0,0x7f] consumes one byte, an offset in [0x80,0x7fffff] takes three, and
* the high bit of the first byte is set.
*/
#define SN_3BYTE_OFFSET_FLAG 0x80
#define SN_3BYTE_OFFSET_MASK 0x7f
extern JS_FRIEND_DATA(const char *) js_SrcNoteName[];
extern JS_FRIEND_DATA(uint8) js_SrcNoteArity[];
extern JS_FRIEND_DATA(uintN) js_SrcNoteLength(jssrcnote *sn);
#define SN_LENGTH(sn) ((js_SrcNoteArity[SN_TYPE(sn)] == 0) ? 1 \
: js_SrcNoteLength(sn))
#define SN_NEXT(sn) ((sn) + SN_LENGTH(sn))
/* A source note array is terminated by an all-zero element. */
#define SN_MAKE_TERMINATOR(sn) (*(sn) = SRC_NULL)
#define SN_IS_TERMINATOR(sn) (*(sn) == SRC_NULL)
/*
* Append a new source note of the given type (and therefore size) to cg's
* notes dynamic array, updating cg->noteCount. Return the new note's index
* within the array pointed at by cg->notes. Return -1 if out of memory.
*/
extern intN
js_NewSrcNote(JSContext *cx, JSCodeGenerator *cg, JSSrcNoteType type);
extern intN
js_NewSrcNote2(JSContext *cx, JSCodeGenerator *cg, JSSrcNoteType type,
ptrdiff_t offset);
extern intN
js_NewSrcNote3(JSContext *cx, JSCodeGenerator *cg, JSSrcNoteType type,
ptrdiff_t offset1, ptrdiff_t offset2);
/*
* Get and set the offset operand identified by which (0 for the first, etc.).
*/
extern JS_FRIEND_API(ptrdiff_t)
js_GetSrcNoteOffset(jssrcnote *sn, uintN which);
extern JSBool
js_SetSrcNoteOffset(JSContext *cx, JSCodeGenerator *cg, uintN index,
uintN which, ptrdiff_t offset);
/*
* Finish taking source notes in cx's tempPool by copying them to new
* stable store allocated via JS_malloc. Return null on malloc failure,
* which means this function reported an error.
*/
extern jssrcnote *
js_FinishTakingSrcNotes(JSContext *cx, JSCodeGenerator *cg);
/*
* Allocate cg->treeContext.tryCount notes (plus one for the end sentinel)
* from cx->tempPool and set up cg->tryBase/tryNext for exactly tryCount
* js_NewTryNote calls. The storage is freed by js_ResetCodeGenerator.
*/
extern JSBool
js_AllocTryNotes(JSContext *cx, JSCodeGenerator *cg);
/*
* Grab the next trynote slot in cg, filling it in appropriately.
*/
extern JSTryNote *
js_NewTryNote(JSContext *cx, JSCodeGenerator *cg, ptrdiff_t start,
ptrdiff_t end, ptrdiff_t catchStart);
/*
* Finish generating exception information, and copy it to JS_malloc
* storage.
*/
extern JSBool
js_FinishTakingTryNotes(JSContext *cx, JSCodeGenerator *cg, JSTryNote **tryp);
JS_END_EXTERN_C
#endif /* jsemit_h___ */

View File

@@ -1,477 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS standard exception implementation.
*/
/*
* This is currently very messy, and in flux. Don't anybody think
* I'm going to leave it like this. No no.
*/
#include "jsstddef.h"
#include "jstypes.h"
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#include "jsprf.h"
#include "jsapi.h"
#include "jscntxt.h"
#include "jsconfig.h"
#include "jsexn.h"
#if JS_HAS_ERROR_EXCEPTIONS
#if !JS_HAS_EXCEPTIONS
# error "JS_HAS_EXCEPTIONS must be defined to use JS_HAS_ERROR_EXCEPTIONS"
#endif
JSObject *tlobj;
/*
* This could end up just being the error report, but I
* want to learn how to support random garbage here.
*
* If I go with it, a rambling comment mentioning GC, memory management etc. is
* needed.
*
* I'd rather have the errorReport inline, to avoid the extra malloc'd object
* dangle. But I'll figure that out later, if I still need it.
*/
typedef struct JSExnPrivate {
JSErrorReport *errorReport;
const char *message;
} JSExnPrivate;
/*
* Copy everything interesting about an error into allocated memory.
*/
static JSExnPrivate *
exn_initPrivate(JSContext *cx, JSErrorReport *report, const char *message)
{
JSExnPrivate *newPrivate;
JSErrorReport * newReport;
char *newMessage;
newPrivate = (JSExnPrivate *)JS_malloc(cx, sizeof (JSExnPrivate));
JS_ASSERT(message);
newMessage = (char *)JS_malloc(cx, strlen(message)+1);
strcpy(newMessage, message);
newPrivate->message = newMessage;
/* Copy the error report */
newReport = (JSErrorReport *)JS_malloc(cx, sizeof (JSErrorReport));
if (report->filename) {
newReport->filename =
(const char *)JS_malloc(cx, strlen(report->filename)+1);
/* Ack. Const! */
strcpy((char *)newReport->filename, report->filename);
} else {
newReport->filename = NULL;
}
newReport->lineno = report->lineno;
/*
* We don't need to copy linebuf and tokenptr, because they
* point into the deflated string cache. (currently?)
*/
newReport->linebuf = report->linebuf;
newReport->tokenptr = report->tokenptr;
/*
* But we do need to copy uclinebuf, uctokenptr, because they're
* pointers into internal tokenstream structs, and may go away.
* But only if they're non-null...
*
* NOTE nothing uses this and I'm not really maintaining it until
* I know it's the desired API.
*
* Temporarily disabled, because uclinebuf is 0x10 when I evaluate 'Math()'!
*/
#if 0
if (report->uclinebuf) {
size_t len = js_strlen(report->uclinebuf)+1;
newReport->uclinebuf =
(const jschar *)JS_malloc(cx, len);
js_strncpy(newReport->uclinebuf, report->uclinebuf, len);
newReport->uctokenptr = newReport->uclinebuf + (report->uctokenptr -
report->uclinebuf);
} else
#endif
newReport->uclinebuf = newReport->uctokenptr = NULL;
/* Note that this is before it gets flagged with JSREPORT_EXCEPTION */
newReport->flags = report->flags;
/* Skipping *ucmessage, **messageArgs for now. My guess is that it'll just
* mean copying the pointers, and adding another GC root. Then de-rooting
* them in the finalizer. Dunno if they're rooted in the first place -
* maybe it's only relevant for an exception that goes where it pleases,
* and not for the formerly stack-bound use of the error report.
*/
newPrivate->errorReport = newReport;
return newPrivate;
}
/*
* Undo all the damage done by exn_initPrivate.
*/
static void
exn_destroyPrivate(JSContext *cx, JSExnPrivate *privateData)
{
JS_ASSERT(privateData->message);
/* ! what does const do? */
JS_free(cx, (void *)privateData->message);
JS_ASSERT(privateData->errorReport);
if (privateData->errorReport->uclinebuf)
JS_free(cx, (void *)privateData->errorReport->uclinebuf);
if (privateData->errorReport->filename)
JS_free(cx, (void *)privateData->errorReport->filename);
JS_free(cx, privateData->errorReport);
JS_free(cx, privateData);
}
/* Destroy associated data... */
static void
exn_finalize(JSContext *cx, JSObject *obj)
{
JSExnPrivate *privateData;
privateData = (JSExnPrivate *)
JSVAL_TO_PRIVATE(OBJ_GET_SLOT(cx, obj, JSSLOT_PRIVATE));
if (privateData) {
exn_destroyPrivate(cx, privateData);
}
}
/* This must be kept in synch with the exceptions array below. */
typedef enum JSExnType {
JSEXN_NONE = -1,
JSEXN_EXCEPTION,
JSEXN_ERR,
JSEXN_INTERNALERR,
JSEXN_SYNTAXERR,
JSEXN_REFERENCEERR,
JSEXN_CALLERR,
JSEXN_TARGETERR,
JSEXN_CONSTRUCTORERR,
JSEXN_CONVERSIONERR,
JSEXN_TOOBJECTERR,
JSEXN_TOPRIMITIVEERR,
JSEXN_DEFAULTVALUEERR,
JSEXN_ARRAYERR,
JSEXN_LIMIT
} JSExnType;
#define FLAGS JSCLASS_HAS_PRIVATE
/* Maybe #define RANDOM_CLASS(name, prototype) 4 here? */
struct JSExnSpec {
int protoIndex;
JSClass theclass;
};
/*
* I want to replace all of these with just one class. All we really care
* about is the prototypes, and the constructor names.
*/
static struct JSExnSpec exceptions[] = {
{ JSEXN_NONE, /* No proto? */ {
"Exception", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_EXCEPTION, {
"Error", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_ERR, {
"InternalError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_ERR, {
"SyntaxError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_ERR, {
"ReferenceError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_ERR, {
"CallError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_CALLERR, {
"TargetError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_ERR, {
"ConstructorError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_ERR, {
"ConversionError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_CONVERSIONERR, {
"ToObjectError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_CONVERSIONERR, {
"ToPrimitiveError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_CONVERSIONERR, {
"DefaultValueError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{ JSEXN_ERR, {
"ArrayError", FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, exn_finalize
} },
{0}
};
static JSBool
Exception(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
if (!cx->fp->constructing) {
return JS_TRUE;
}
/* gotta null out that private data */
OBJ_SET_SLOT(cx, obj, JSSLOT_PRIVATE, JSVAL_NULL);
return JS_TRUE;
}
/*
* Convert to string. Much of this is taken from js.c.
*
* I should rewrite this to use message, line, file etc. from
* javascript-modifiable properties (which might be lazily created
* from the encapsulated error report.)
*/
static JSBool
exn_toString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
JSString *str;
JSExnPrivate *privateData;
JSErrorReport *report;
jsval v;
char *name;
JSClass *theclass;
/* Check needed against incompatible target... */
/* Try to include the exception name in the error message. */
theclass = OBJ_GET_CLASS(cx, obj);
name = theclass->name;
v = OBJ_GET_SLOT(cx, obj, JSSLOT_PRIVATE);
if (!JSVAL_IS_NULL(v)) {
char *msgbuf, *tmp;
privateData = JSVAL_TO_PRIVATE(v);
report = privateData->errorReport;
msgbuf = JS_smprintf("%s:", name);
if (report->filename) {
tmp = msgbuf;
msgbuf = JS_smprintf("%s%s:", tmp, report->filename);
JS_free(cx, tmp);
}
if (report->lineno) {
tmp = msgbuf;
msgbuf = JS_smprintf("%s%u: ", tmp ? tmp : "", report->lineno);
if (tmp)
JS_free(cx, tmp);
}
JS_ASSERT(privateData->message);
tmp = msgbuf;
msgbuf = JS_smprintf("%s%s", tmp ? tmp : "", privateData->message);
if(tmp)
JS_free(cx, tmp);
str = JS_NewStringCopyZ(cx, msgbuf);
} else {
str = JS_NewStringCopyZ(cx, "some non-engine-thrown exception");
}
if (!str)
return JS_FALSE;
*rval = STRING_TO_JSVAL(str);
return JS_TRUE;
}
static JSFunctionSpec exception_methods[] = {
{js_toString_str, exn_toString, 0},
{0}
};
JSObject *
js_InitExceptionClasses(JSContext *cx, JSObject *obj)
{
JSObject *protos[JSEXN_LIMIT];
int i;
for (i = 0; exceptions[i].theclass.name != 0; i++) {
int protoidx = exceptions[i].protoIndex;
protos[i] = JS_InitClass(cx, obj,
((protoidx >= 0) ? protos[protoidx] : NULL),
&(exceptions[i].theclass),
Exception, 1,
NULL,
exception_methods,
NULL,
NULL);
/* So finalize knows whether to. */
OBJ_SET_SLOT(cx, protos[i], JSSLOT_PRIVATE, JSVAL_NULL);
}
/*
* JS_InitClass magically replaces a null prototype with Object.prototype,
* so we need to explicitly assign to the proto slot to get null.
*
* Temporarily disabled until I do toString for Exception.
*/
/* protos[0]->slots[JSSLOT_PROTO] = JSVAL_NULL; */
return protos[0];
}
static JSErrorReport *
js_GetErrorFromException(JSContext *cx, JSObject *errobj)
{
JSExnPrivate *privateData;
#if 0
{
JSClass *errobjclass;
/* Assert that we have an Exception object */
/* This assert does the right thing, but we can't use it yet, because
* we're throwing lots of different exception classes. */
errobjclass = OBJ_GET_CLASS(cx, errobj);
JS_ASSERT(errobjclass == &(exceptions[JSEXN_CALLERR].theclass));
}
#endif
privateData = JSVAL_TO_PRIVATE(OBJ_GET_SLOT(cx, errobj, JSSLOT_PRIVATE));
/* Still OK to return NULL, tho. */
return privateData->errorReport;
}
static JSExnType errorToException[] = {
#define MSG_DEF(name, number, count, exception, format) \
exception,
#include "js.msg"
#undef MSG_DEF
};
#if defined ( DEBUG_mccabe ) && defined ( PRINTNAMES )
/* For use below... get character strings for error name and exception name */
static struct exnname { char *name; char *exception; } errortoexnname[] = {
#define MSG_DEF(name, number, count, exception, format) \
{#name, #exception},
#include "js.msg"
#undef MSG_DEF
};
#endif /* DEBUG */
JSBool
js_ErrorToException(JSContext *cx, JSErrorReport *reportp, const char *message)
{
JSErrNum errorNumber;
JSObject *errobj;
JSExnType exn;
JSExnPrivate *privateData;
JS_ASSERT(reportp);
errorNumber = reportp->errorNumber;
exn = errorToException[errorNumber];
JS_ASSERT(exn < JSEXN_LIMIT);
#if defined( DEBUG_mccabe ) && defined ( PRINTNAMES )
/* Print the error name and the associated exception name to stderr */
fprintf(stderr, "%s\t%s\n",
errortoexnname[errorNumber].name,
errortoexnname[errorNumber].exception);
#endif
/*
* Return false (no exception raised) if no exception is associated
* with the given error number.
*/
if (exn == JSEXN_NONE)
return JS_FALSE;
/*
* Should (?) be js_ConstructObject... switching to NewObject
* in the speculation that it won't require a frame. DefaultValue trouble.
* And it seems to work???? For the record, the trouble was that
* cx->fp was null when trying to construct the object...
*/
errobj = js_NewObject(cx,
&(exceptions[exn].theclass),
NULL, NULL);
/*
* Construct a new copy of the error report, and store it in the
* exception objects' private data. We can't use the error report
* handed in, because it's stack-allocated, and may point to transient
* data in the JSTokenStream.
*/
/* XXX report failure? */
privateData = exn_initPrivate(cx, reportp, message);
OBJ_SET_SLOT(cx, errobj, JSSLOT_PRIVATE, PRIVATE_TO_JSVAL(privateData));
JS_SetPendingException(cx, OBJECT_TO_JSVAL(errobj));
reportp->flags |= JSREPORT_EXCEPTION;
return JS_TRUE;
}
#endif /* JS_HAS_ERROR_EXCEPTIONS */

View File

@@ -1,47 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS runtime exception classes.
*/
#ifndef jsexn_h___
#define jsexn_h___
JS_BEGIN_EXTERN_C
/*
* Initialize exception object hierarchy.
*/
extern JSObject *
js_InitExceptionClasses(JSContext *cx, JSObject *obj);
/*
* Given a JSErrorReport, check to see if there is an exception associated
* with the error number. If there is, then create an appropriate exception
* object, set it as the pending exception, and set the JSREPORT_EXCEPTION
* flag on the error report. Exception-aware host error reporters will
* know to ignore error reports so flagged. Returns JS_TRUE if an associated
* exception is found, JS_FALSE if none.
*/
extern JSBool
js_ErrorToException(JSContext *cx, JSErrorReport *reportp, const char *message);
JS_END_EXTERN_C
#endif /* jsexn_h___ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,106 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsfun_h___
#define jsfun_h___
/*
* JS function definitions.
*/
#include "jsprvtd.h"
#include "jspubtd.h"
JS_BEGIN_EXTERN_C
struct JSFunction {
jsrefcount nrefs; /* number of referencing objects */
JSObject *object; /* back-pointer to GC'ed object header */
JSNative call; /* native method pointer or null */
uint16 nargs; /* minimum number of actual arguments */
uint16 extra; /* number of arg slots for local GC roots */
uint16 nvars; /* number of local variables */
uint8 flags; /* bound method and other flags, see jsapi.h */
uint8 spare; /* reserved for future use */
JSAtom *atom; /* name for diagnostics and decompiling */
JSScript *script; /* interpreted bytecode descriptor or null */
};
extern JSClass js_ArgumentsClass;
extern JSClass js_CallClass;
extern JSClass js_ClosureClass;
/* JS_FRIEND_DATA so that JSVAL_IS_FUNCTION is callable from outside */
extern JS_FRIEND_DATA(JSClass) js_FunctionClass;
/*
* NB: jsapi.h and jsobj.h must be included before any call to this macro.
*/
#define JSVAL_IS_FUNCTION(cx, v) \
(JSVAL_IS_OBJECT(v) && JSVAL_TO_OBJECT(v) && \
OBJ_GET_CLASS(cx, JSVAL_TO_OBJECT(v)) == &js_FunctionClass)
extern JSBool
js_IsIdentifier(JSString *str);
extern JSObject *
js_InitFunctionClass(JSContext *cx, JSObject *obj);
extern JSBool
js_InitArgsCallClosureClasses(JSContext *cx, JSObject *obj,
JSObject *arrayProto);
extern JSFunction *
js_NewFunction(JSContext *cx, JSObject *funobj, JSNative call, uintN nargs,
uintN flags, JSObject *parent, JSAtom *atom);
extern JSBool
js_LinkFunctionObject(JSContext *cx, JSFunction *fun, JSObject *object);
extern JSFunction *
js_DefineFunction(JSContext *cx, JSObject *obj, JSAtom *atom, JSNative call,
uintN nargs, uintN flags);
extern JSFunction *
js_ValueToFunction(JSContext *cx, jsval *vp, JSBool constructing);
extern void
js_ReportIsNotFunction(JSContext *cx, jsval *vp, JSBool constructing);
extern JSObject *
js_GetCallObject(JSContext *cx, JSStackFrame *fp, JSObject *parent,
JSObject *withobj);
extern JSBool
js_PutCallObject(JSContext *cx, JSStackFrame *fp);
extern JSBool
js_GetCallVariable(JSContext *cx, JSObject *obj, jsval id, jsval *vp);
extern JSBool
js_SetCallVariable(JSContext *cx, JSObject *obj, jsval id, jsval *vp);
extern JSObject *
js_GetArgsObject(JSContext *cx, JSStackFrame *fp);
extern JSBool
js_PutArgsObject(JSContext *cx, JSStackFrame *fp);
extern JSBool
js_XDRFunction(JSXDRState *xdr, JSObject **objp);
JS_END_EXTERN_C
#endif /* jsfun_h___ */

View File

@@ -1,925 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS Mark-and-Sweep Garbage Collector.
*
* This GC allocates only fixed-sized things big enough to contain two words
* (pointers) on any host architecture. It allocates from an arena pool (see
* jsarena.h). It uses a parallel arena-pool array of flag bytes to hold the
* mark bit, finalizer type index, etc.
*
* XXX swizzle page to freelist for better locality of reference
*/
#include "jsstddef.h"
#include <stdlib.h> /* for free, called by JS_ARENA_DESTROY */
#include <string.h> /* for memset, called by jsarena.h macros if DEBUG */
#include "jstypes.h"
#ifndef NSPR20
#include "jsarena.h"
#else
/* Removed by JSIFY: #include "plarena.h"
*/
#include "jsarena.h" /* Added by JSIFY */
#endif
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#ifndef NSPR20
#include "jshash.h"
#else
/* Removed by JSIFY: #include "JShash.h"
*/
#include "jshash.h" /* Added by JSIFY */
#endif
#include "jsapi.h"
#include "jsatom.h"
#include "jscntxt.h"
#include "jsfun.h"
#include "jsgc.h"
#include "jsinterp.h"
#include "jslock.h"
#include "jsnum.h"
#include "jsobj.h"
#include "jsscope.h"
#include "jsscript.h"
#include "jsstr.h"
/*
* Arena sizes, the first must be a multiple of the second so the two arena
* pools can be maintained (in particular, arenas may be destroyed from the
* middle of each pool) in parallel.
*/
#define GC_ARENA_SIZE 8192 /* 1024 (512 on Alpha) objects */
#define GC_FLAGS_SIZE (GC_ARENA_SIZE / sizeof(JSGCThing))
#define GC_ROOTS_SIZE 256 /* SWAG, small enough to amortize */
static JSHashNumber gc_hash_root(const void *key);
struct JSGCThing {
JSGCThing *next;
uint8 *flagp;
};
typedef void (*GCFinalizeOp)(JSContext *cx, JSGCThing *thing);
static GCFinalizeOp gc_finalizers[GCX_NTYPES];
#ifdef JS_GCMETER
#define METER(x) x
#else
#define METER(x) /* nothing */
#endif
JSBool
js_InitGC(JSRuntime *rt, uint32 maxbytes)
{
if (!gc_finalizers[GCX_OBJECT]) {
gc_finalizers[GCX_OBJECT] = (GCFinalizeOp)js_FinalizeObject;
gc_finalizers[GCX_STRING] = (GCFinalizeOp)js_FinalizeString;
gc_finalizers[GCX_DOUBLE] = (GCFinalizeOp)js_FinalizeDouble;
}
JS_InitArenaPool(&rt->gcArenaPool, "gc-arena", GC_ARENA_SIZE,
sizeof(JSGCThing));
JS_InitArenaPool(&rt->gcFlagsPool, "gc-flags", GC_FLAGS_SIZE,
sizeof(uint8));
rt->gcRootsHash = JS_NewHashTable(GC_ROOTS_SIZE, gc_hash_root,
JS_CompareValues, JS_CompareValues,
NULL, NULL);
if (!rt->gcRootsHash)
return JS_FALSE;
rt->gcMaxBytes = maxbytes;
return JS_TRUE;
}
#ifdef JS_GCMETER
void
js_DumpGCStats(JSRuntime *rt, FILE *fp)
{
fprintf(fp, "\nGC allocation statistics:\n");
fprintf(fp, " bytes currently allocated: %lu\n", rt->gcBytes);
fprintf(fp, " alloc attempts: %lu\n", rt->gcStats.alloc);
fprintf(fp, " GC freelist length: %lu\n", rt->gcStats.freelen);
fprintf(fp, " recycles through GC freelist: %lu\n", rt->gcStats.recycle);
fprintf(fp, "alloc retries after running GC: %lu\n", rt->gcStats.retry);
fprintf(fp, " allocation failures: %lu\n", rt->gcStats.fail);
fprintf(fp, " valid lock calls: %lu\n", rt->gcStats.lock);
fprintf(fp, " valid unlock calls: %lu\n", rt->gcStats.unlock);
fprintf(fp, " locks that hit stuck counts: %lu\n", rt->gcStats.stuck);
fprintf(fp, " unlocks that saw stuck counts: %lu\n", rt->gcStats.unstuck);
fprintf(fp, " mark recursion depth: %lu\n", rt->gcStats.depth);
fprintf(fp, " maximum mark recursion depth: %lu\n", rt->gcStats.maxdepth);
fprintf(fp, " maximum GC nesting level: %lu\n", rt->gcStats.maxlevel);
fprintf(fp, " potentially useful GC calls: %lu\n", rt->gcStats.poke);
fprintf(fp, " useless GC calls: %lu\n", rt->gcStats.nopoke);
fprintf(fp, " thing arena corruption: %lu\n", rt->gcStats.badarena);
fprintf(fp, " flags arena corruption: %lu\n", rt->gcStats.badflag);
fprintf(fp, " thing arenas freed so far: %lu\n", rt->gcStats.afree);
fprintf(fp, " flags arenas freed so far: %lu\n", rt->gcStats.fafree);
#ifdef JS_ARENAMETER
JS_DumpArenaStats(fp);
#endif
}
#endif
void
js_FinishGC(JSRuntime *rt)
{
#ifdef JS_ARENAMETER
JS_DumpArenaStats(stdout);
#endif
#ifdef JS_GCMETER
js_DumpGCStats(rt, stdout);
#endif
JS_FinishArenaPool(&rt->gcArenaPool);
JS_FinishArenaPool(&rt->gcFlagsPool);
JS_ArenaFinish();
JS_HashTableDestroy(rt->gcRootsHash);
rt->gcRootsHash = NULL;
rt->gcFreeList = NULL;
}
JSBool
js_AddRoot(JSContext *cx, void *rp, const char *name)
{
JSRuntime *rt;
JSBool ok;
rt = cx->runtime;
JS_LOCK_GC_VOID(rt,
ok = (JS_HashTableAdd(rt->gcRootsHash, rp, (void *)name) != NULL));
if (!ok)
JS_ReportOutOfMemory(cx);
return ok;
}
JSBool
js_RemoveRoot(JSContext *cx, void *rp)
{
JSRuntime *rt;
rt = cx->runtime;
JS_LOCK_GC_VOID(rt, JS_HashTableRemove(rt->gcRootsHash, rp));
return JS_TRUE;
}
void *
js_AllocGCThing(JSContext *cx, uintN flags)
{
JSRuntime *rt;
JSGCThing *thing;
uint8 *flagp;
#ifdef TOO_MUCH_GC
JSBool tried_gc = JS_TRUE;
js_GC(cx);
#else
JSBool tried_gc = JS_FALSE;
#endif
rt = cx->runtime;
JS_LOCK_GC(rt);
METER(rt->gcStats.alloc++);
retry:
thing = rt->gcFreeList;
if (thing) {
rt->gcFreeList = thing->next;
flagp = thing->flagp;
METER(rt->gcStats.freelen--);
METER(rt->gcStats.recycle++);
} else {
if (rt->gcBytes < rt->gcMaxBytes) {
JS_ARENA_ALLOCATE(thing, &rt->gcArenaPool, sizeof(JSGCThing));
JS_ARENA_ALLOCATE(flagp, &rt->gcFlagsPool, sizeof(uint8));
}
if (!thing || !flagp) {
if (thing)
JS_ARENA_RELEASE(&rt->gcArenaPool, thing);
if (!tried_gc) {
JS_UNLOCK_GC(rt);
js_GC(cx);
tried_gc = JS_TRUE;
JS_LOCK_GC(rt);
METER(rt->gcStats.retry++);
goto retry;
}
METER(rt->gcStats.fail++);
JS_UNLOCK_GC(rt);
JS_ReportOutOfMemory(cx);
return NULL;
}
}
*flagp = (uint8)flags;
rt->gcBytes += sizeof(JSGCThing) + sizeof(uint8);
cx->newborn[flags & GCF_TYPEMASK] = thing;
/*
* Clear thing before unlocking in case a GC run is about to scan it,
* finding it via cx->newborn[].
*/
thing->next = NULL;
thing->flagp = NULL;
JS_UNLOCK_GC(rt);
return thing;
}
static uint8 *
gc_find_flags(JSRuntime *rt, void *thing)
{
jsuword index, offset, length;
JSArena *a, *fa;
index = 0;
for (a = rt->gcArenaPool.first.next; a; a = a->next) {
offset = JS_UPTRDIFF(thing, a->base);
length = a->avail - a->base;
if (offset < length) {
index += offset / sizeof(JSGCThing);
for (fa = rt->gcFlagsPool.first.next; fa; fa = fa->next) {
offset = fa->avail - fa->base;
if (index < offset)
return (uint8 *)fa->base + index;
index -= offset;
}
return NULL;
}
index += length / sizeof(JSGCThing);
}
return NULL;
}
JSBool
js_LockGCThing(JSContext *cx, void *thing)
{
uint8 *flagp, flags;
if (!thing)
return JS_TRUE;
flagp = gc_find_flags(cx->runtime, thing);
if (!flagp)
return JS_FALSE;
flags = *flagp;
if ((flags & GCF_LOCKMASK) != GCF_LOCKMASK) {
*flagp = (uint8)(flags + GCF_LOCK);
} else {
METER(cx->runtime->gcStats.stuck++);
}
METER(cx->runtime->gcStats.lock++);
return JS_TRUE;
}
JSBool
js_UnlockGCThing(JSContext *cx, void *thing)
{
uint8 *flagp, flags;
if (!thing)
return JS_TRUE;
flagp = gc_find_flags(cx->runtime, thing);
if (!flagp)
return JS_FALSE;
flags = *flagp;
if ((flags & GCF_LOCKMASK) != GCF_LOCKMASK) {
*flagp = (uint8)(flags - GCF_LOCK);
} else {
METER(cx->runtime->gcStats.unstuck++);
}
METER(cx->runtime->gcStats.unlock++);
return JS_TRUE;
}
#ifdef GC_MARK_DEBUG
#include <stdio.h>
#include <stdlib.h>
#include "jsprf.h"
JS_FRIEND_DATA(FILE *) js_DumpGCHeap;
JS_FRIEND_DATA(void *) js_LiveThingToFind;
typedef struct GCMarkNode GCMarkNode;
struct GCMarkNode {
void *thing;
char *name;
GCMarkNode *next;
GCMarkNode *prev;
};
static void
gc_dump_thing(JSGCThing *thing, uint8 flags, GCMarkNode *prev, FILE *fp)
{
GCMarkNode *next = NULL;
char *path = NULL;
JSObject *obj;
JSClass *clasp;
while (prev) {
next = prev;
prev = prev->prev;
}
while (next) {
path = JS_sprintf_append(path, "%s.", next->name);
next = next->next;
}
if (!path)
return;
fprintf(fp, "%08lx ", (long)thing);
switch (flags & GCF_TYPEMASK) {
case GCX_OBJECT:
obj = (JSObject *)thing;
clasp = JSVAL_TO_PRIVATE(obj->slots[JSSLOT_CLASS]);
fprintf(fp, "object %s", clasp->name);
break;
case GCX_STRING:
fprintf(fp, "string %s", JS_GetStringBytes((JSString *)thing));
break;
case GCX_DOUBLE:
fprintf(fp, "double %g", *(jsdouble *)thing);
break;
case GCX_DECIMAL:
break;
}
fprintf(fp, " via %s\n", path);
free(path);
}
static void
gc_mark_node(JSRuntime *rt, void *thing, GCMarkNode *prev);
#define GC_MARK(_rt, _thing, _name, _prev) \
JS_BEGIN_MACRO \
GCMarkNode _node; \
_node.thing = _thing; \
_node.name = _name; \
_node.next = NULL; \
_node.prev = _prev; \
if (_prev) ((GCMarkNode *)(_prev))->next = &_node; \
gc_mark_node(_rt, _thing, &_node); \
JS_END_MACRO
static void
gc_mark(JSRuntime *rt, void *thing)
{
GC_MARK(rt, thing, "atom", NULL);
}
#define GC_MARK_ATOM(rt, atom, prev) gc_mark_atom(rt, atom, prev)
#define GC_MARK_SCRIPT(rt, script, prev) gc_mark_script(rt, script, prev)
#else /* !GC_MARK_DEBUG */
#define GC_MARK(rt, thing, name, prev) gc_mark(rt, thing)
#define GC_MARK_ATOM(rt, atom, prev) gc_mark_atom(rt, atom)
#define GC_MARK_SCRIPT(rt, script, prev) gc_mark_script(rt, script)
static void
gc_mark(JSRuntime *rt, void *thing);
#endif /* !GC_MARK_DEBUG */
static void
gc_mark_atom(JSRuntime *rt, JSAtom *atom
#ifdef GC_MARK_DEBUG
, GCMarkNode *prev
#endif
)
{
jsval key;
if (!atom || atom->flags & ATOM_MARK)
return;
atom->flags |= ATOM_MARK;
key = ATOM_KEY(atom);
if (JSVAL_IS_GCTHING(key)) {
#ifdef GC_MARK_DEBUG
char name[32];
if (JSVAL_IS_STRING(key)) {
JS_snprintf(name, sizeof name, "'%s'",
JS_GetStringBytes(JSVAL_TO_STRING(key)));
} else {
JS_snprintf(name, sizeof name, "<%x>", key);
}
#endif
GC_MARK(rt, JSVAL_TO_GCTHING(key), name, prev);
}
}
static void
gc_mark_script(JSRuntime *rt, JSScript *script
#ifdef GC_MARK_DEBUG
, GCMarkNode *prev
#endif
)
{
JSAtomMap *map;
uintN i, length;
JSAtom **vector;
map = &script->atomMap;
length = map->length;
vector = map->vector;
for (i = 0; i < length; i++)
GC_MARK_ATOM(rt, vector[i], prev);
}
static void
#ifdef GC_MARK_DEBUG
gc_mark_node(JSRuntime *rt, void *thing, GCMarkNode *prev)
#else
gc_mark(JSRuntime *rt, void *thing)
#endif
{
uint8 flags, *flagp;
JSObject *obj;
jsval v, *vp, *end;
JSScope *scope;
JSClass *clasp;
JSScript *script;
JSFunction *fun;
JSScopeProperty *sprop;
JSSymbol *sym;
if (!thing)
return;
flagp = gc_find_flags(rt, thing);
if (!flagp)
return;
/* Check for something on the GC freelist to handle recycled stack. */
flags = *flagp;
if (flags == GCF_FINAL)
return;
#ifdef GC_MARK_DEBUG
if (js_LiveThingToFind == thing)
gc_dump_thing(thing, flags, prev, stderr);
#endif
if (flags & GCF_MARK)
return;
*flagp |= GCF_MARK;
METER(if (++rt->gcStats.depth > rt->gcStats.maxdepth)
rt->gcStats.maxdepth = rt->gcStats.depth);
#ifdef GC_MARK_DEBUG
if (js_DumpGCHeap)
gc_dump_thing(thing, flags, prev, js_DumpGCHeap);
#endif
if ((flags & GCF_TYPEMASK) == GCX_OBJECT) {
obj = thing;
vp = obj->slots;
if (vp) {
scope = OBJ_IS_NATIVE(obj) ? (JSScope *) obj->map : NULL;
if (scope) {
clasp = JSVAL_TO_PRIVATE(obj->slots[JSSLOT_CLASS]);
if (clasp == &js_ScriptClass) {
v = vp[JSSLOT_PRIVATE];
if (!JSVAL_IS_VOID(v)) {
script = JSVAL_TO_PRIVATE(v);
if (script)
GC_MARK_SCRIPT(rt, script, prev);
}
}
if (clasp == &js_FunctionClass) {
v = vp[JSSLOT_PRIVATE];
if (!JSVAL_IS_VOID(v)) {
fun = JSVAL_TO_PRIVATE(v);
if (fun) {
if (fun->atom)
GC_MARK_ATOM(rt, fun->atom, prev);
if (fun->script)
GC_MARK_SCRIPT(rt, fun->script, prev);
}
}
}
for (sprop = scope->props; sprop; sprop = sprop->next) {
for (sym = sprop->symbols; sym; sym = sym->next) {
if (JSVAL_IS_INT(sym_id(sym)))
continue;
GC_MARK_ATOM(rt, sym_atom(sym), prev);
}
}
}
if (!scope || scope->object == obj)
end = vp + obj->map->freeslot;
else
end = vp + JS_INITIAL_NSLOTS;
for (; vp < end; vp++) {
v = *vp;
if (JSVAL_IS_GCTHING(v)) {
#ifdef GC_MARK_DEBUG
char name[32];
if (scope) {
uint32 slot;
jsval nval;
slot = vp - obj->slots;
for (sprop = scope->props; ; sprop = sprop->next) {
if (!sprop) {
switch (slot) {
case JSSLOT_PROTO:
strcpy(name, "__proto__");
break;
case JSSLOT_PARENT:
strcpy(name, "__parent__");
break;
case JSSLOT_PRIVATE:
strcpy(name, "__private__");
break;
default:
JS_snprintf(name, sizeof name,
"**UNKNOWN SLOT %ld**",
(long)slot);
break;
}
break;
}
if (sprop->slot == slot) {
nval = sprop->symbols
? js_IdToValue(sym_id(sprop->symbols))
: sprop->id;
if (JSVAL_IS_INT(nval)) {
JS_snprintf(name, sizeof name, "%ld",
(long)JSVAL_TO_INT(nval));
} else if (JSVAL_IS_STRING(nval)) {
JS_snprintf(name, sizeof name, "%s",
JS_GetStringBytes(JSVAL_TO_STRING(nval)));
} else {
strcpy(name, "**FINALIZED ATOM KEY**");
}
break;
}
}
}
#endif
GC_MARK(rt, JSVAL_TO_GCTHING(v), name, prev);
}
}
}
}
METER(rt->gcStats.depth--);
}
static JSHashNumber
gc_hash_root(const void *key)
{
JSHashNumber num = (JSHashNumber) key; /* help lame MSVC1.5 on Win16 */
return num >> 2;
}
STATIC_DLL_CALLBACK(intN)
gc_root_marker(JSHashEntry *he, intN i, void *arg)
{
void **rp = (void **)he->key;
if (*rp) {
#ifdef DEBUG
JSArena *a;
JSRuntime *rt = (JSRuntime *)arg;
for (a = rt->gcArenaPool.first.next; a; a = a->next) {
JS_ASSERT(!rp ||
(*rp >= (void *)a->base && *rp <= (void *)a->avail));
}
#endif
GC_MARK(arg, *rp, he->value ? he->value : "root", NULL);
}
return HT_ENUMERATE_NEXT;
}
JS_FRIEND_API(void)
js_ForceGC(JSContext *cx)
{
cx->newborn[GCX_OBJECT] = NULL;
cx->newborn[GCX_STRING] = NULL;
cx->newborn[GCX_DOUBLE] = NULL;
cx->runtime->gcPoke = JS_TRUE;
js_GC(cx);
JS_ArenaFinish();
}
void
js_GC(JSContext *cx)
{
JSRuntime *rt;
JSContext *iter, *acx;
JSArena *a, *ma, *fa, **ap, **fap;
jsval v, *vp, *sp;
jsuword begin, end;
JSStackFrame *fp, *chain;
void *mark;
uint8 flags, *flagp;
JSGCThing *thing, *final, **flp, **oflp;
GCFinalizeOp finalizer;
JSBool a_all_clear, f_all_clear;
/*
* XXX kludge for pre-ECMAv2 compile-time switch case expr eval, see
* jsemit.c:js_EmitTree, under case TOK_SWITCH: (look for XXX).
*/
if (cx->gcDisabled)
return;
rt = cx->runtime;
#ifdef JS_THREADSAFE
/* Avoid deadlock. */
JS_ASSERT(!JS_IS_RUNTIME_LOCKED(rt));
#endif
/* Let the API user decide to defer a GC if it wants to. */
if (rt->gcCallback && !rt->gcCallback(cx, JSGC_BEGIN))
return;
/* Lock out other GC allocator and collector invocations. */
JS_LOCK_GC(rt);
/* Do nothing if no assignment has executed since the last GC. */
if (!rt->gcPoke) {
METER(rt->gcStats.nopoke++);
JS_UNLOCK_GC(rt);
return;
}
rt->gcPoke = JS_FALSE;
METER(rt->gcStats.poke++);
#ifdef JS_THREADSAFE
/* Bump gcLevel and return rather than nest on this context. */
if (cx->gcActive) {
rt->gcLevel++;
METER(if (rt->gcLevel > rt->gcStats.maxlevel)
rt->gcStats.maxlevel = rt->gcLevel);
if (rt->gcLevel > 1) {
JS_UNLOCK_GC(rt);
return;
}
}
/* If we're in a request, indicate, temporarily, that we're inactive. */
if (cx->requestDepth) {
rt->requestCount--;
JS_NOTIFY_REQUEST_DONE(rt);
}
/* If another thread is already in GC, don't attempt GC; wait instead. */
if (rt->gcLevel > 0) {
while (rt->gcLevel > 0)
JS_AWAIT_GC_DONE(rt);
if (cx->requestDepth)
rt->requestCount++;
JS_UNLOCK_GC(rt);
return;
}
/* No other thread is in GC, so indicate that we're now in GC. */
rt->gcLevel = 1;
/* Also indicate that GC is active on this context. */
cx->gcActive = JS_TRUE;
/* Wait for all other requests to finish. */
while (rt->requestCount > 0)
JS_AWAIT_REQUEST_DONE(rt);
#else /* !JS_THREADSAFE */
/* Bump gcLevel and return rather than nest; the outer gc will restart. */
rt->gcLevel++;
METER(if (rt->gcLevel > rt->gcStats.maxlevel)
rt->gcStats.maxlevel = rt->gcLevel);
if (rt->gcLevel > 1)
return;
#endif /* !JS_THREADSAFE */
/* Drop atoms held by the property cache, and clear property weak links. */
js_FlushPropertyCache(cx);
restart:
rt->gcNumber++;
/* Mark phase. */
JS_HashTableEnumerateEntries(rt->gcRootsHash, gc_root_marker, rt);
js_MarkAtomState(&rt->atomState, gc_mark);
iter = NULL;
while ((acx = js_ContextIterator(rt, &iter)) != NULL) {
/*
* Iterate frame chain and dormant chains. Temporarily tack current
* frame onto the head of the dormant list to ease iteration.
*
* (NOTE: see comment on this whole 'dormant' thing in js_Execute)
*/
chain = acx->fp;
if (chain) {
JS_ASSERT(!chain->dormantNext);
chain->dormantNext = acx->dormantFrameChain;
} else {
chain = acx->dormantFrameChain;
}
for (fp=chain; fp; fp = chain = chain->dormantNext) {
sp = fp->sp;
if (sp) {
for (a = acx->stackPool.first.next; a; a = a->next) {
begin = a->base;
end = a->avail;
if (JS_UPTRDIFF(sp, begin) < JS_UPTRDIFF(end, begin))
end = (jsuword)sp;
for (vp = (jsval *)begin; vp < (jsval *)end; vp++) {
v = *vp;
if (JSVAL_IS_GCTHING(v))
GC_MARK(rt, JSVAL_TO_GCTHING(v), "stack", NULL);
}
if (end == (jsuword)sp)
break;
}
}
do {
GC_MARK(rt, fp->scopeChain, "scope chain", NULL);
GC_MARK(rt, fp->thisp, "this", NULL);
if (JSVAL_IS_GCTHING(fp->rval))
GC_MARK(rt, JSVAL_TO_GCTHING(fp->rval), "rval", NULL);
if (fp->callobj)
GC_MARK(rt, fp->callobj, "call object", NULL);
if (fp->argsobj)
GC_MARK(rt, fp->argsobj, "arguments object", NULL);
if (fp->script)
GC_MARK_SCRIPT(rt, fp->script, NULL);
if (fp->sharpArray)
GC_MARK(rt, fp->sharpArray, "sharp array", NULL);
} while ((fp = fp->down) != NULL);
}
/* cleanup temporary link */
if (acx->fp)
acx->fp->dormantNext = NULL;
GC_MARK(rt, acx->globalObject, "global object", NULL);
GC_MARK(rt, acx->newborn[GCX_OBJECT], "newborn object", NULL);
GC_MARK(rt, acx->newborn[GCX_STRING], "newborn string", NULL);
GC_MARK(rt, acx->newborn[GCX_DOUBLE], "newborn double", NULL);
#if JS_HAS_EXCEPTIONS
if (acx->throwing)
GC_MARK(rt, acx->exception, "exception", NULL);
#endif
}
/* Sweep phase. Mark in tempPool for release at label out:. */
ma = cx->tempPool.current;
mark = JS_ARENA_MARK(&cx->tempPool);
js_SweepAtomState(&rt->atomState);
fa = rt->gcFlagsPool.first.next;
flagp = (uint8 *)fa->base;
for (a = rt->gcArenaPool.first.next; a; a = a->next) {
for (thing = (JSGCThing *)a->base; thing < (JSGCThing *)a->avail;
thing++) {
if (flagp >= (uint8 *)fa->avail) {
fa = fa->next;
JS_ASSERT(fa);
if (!fa) {
METER(rt->gcStats.badflag++);
goto out;
}
flagp = (uint8 *)fa->base;
}
flags = *flagp;
if (flags & GCF_MARK) {
*flagp &= ~GCF_MARK;
} else if (!(flags & (GCF_LOCKMASK | GCF_FINAL))) {
JS_ARENA_ALLOCATE(final, &cx->tempPool, sizeof(JSGCThing));
if (!final)
goto out;
final->next = thing;
final->flagp = flagp;
JS_ASSERT(rt->gcBytes >= sizeof(JSGCThing) + sizeof(uint8));
rt->gcBytes -= sizeof(JSGCThing) + sizeof(uint8);
}
flagp++;
}
}
/* Finalize phase. Don't hold the GC lock while running finalizers! */
JS_UNLOCK_GC(rt);
for (final = mark; ; final++) {
if ((jsuword)final >= ma->avail) {
ma = ma->next;
if (!ma)
break;
final = (JSGCThing *)ma->base;
}
thing = final->next;
flagp = final->flagp;
flags = *flagp;
finalizer = gc_finalizers[flags & GCF_TYPEMASK];
if (finalizer) {
*flagp |= GCF_FINAL;
finalizer(cx, thing);
}
/*
* Set flags to GCF_FINAL, signifying that thing is free, but don't
* thread thing onto rt->gcFreeList. We need the GC lock to rebuild
* the freelist below while also looking for free-able arenas.
*/
*flagp = GCF_FINAL;
}
JS_LOCK_GC(rt);
/* Free unused arenas and rebuild the freelist. */
ap = &rt->gcArenaPool.first.next;
a = *ap;
if (!a)
goto out;
thing = (JSGCThing *)a->base;
a_all_clear = f_all_clear = JS_TRUE;
flp = oflp = &rt->gcFreeList;
*flp = NULL;
METER(rt->gcStats.freelen = 0);
fap = &rt->gcFlagsPool.first.next;
while ((fa = *fap) != NULL) {
/* XXX optimize by unrolling to use word loads */
for (flagp = (uint8 *)fa->base; ; flagp++) {
JS_ASSERT(a);
if (!a) {
METER(rt->gcStats.badarena++);
goto out;
}
if (thing >= (JSGCThing *)a->avail) {
if (a_all_clear) {
JS_ARENA_DESTROY(&rt->gcArenaPool, a, ap);
flp = oflp;
METER(rt->gcStats.afree++);
} else {
ap = &a->next;
a_all_clear = JS_TRUE;
oflp = flp;
}
a = *ap;
if (!a)
break;
thing = (JSGCThing *)a->base;
}
if (flagp >= (uint8 *)fa->avail)
break;
if (*flagp != GCF_FINAL) {
a_all_clear = f_all_clear = JS_FALSE;
} else {
thing->flagp = flagp;
*flp = thing;
flp = &thing->next;
METER(rt->gcStats.freelen++);
}
thing++;
}
if (f_all_clear) {
JS_ARENA_DESTROY(&rt->gcFlagsPool, fa, fap);
METER(rt->gcStats.fafree++);
} else {
fap = &fa->next;
f_all_clear = JS_TRUE;
}
}
/* Terminate the new freelist. */
*flp = NULL;
out:
JS_ARENA_RELEASE(&cx->tempPool, mark);
if (rt->gcLevel > 1) {
rt->gcLevel = 1;
goto restart;
}
rt->gcLevel = 0;
rt->gcLastBytes = rt->gcBytes;
#ifdef JS_THREADSAFE
/* If we were invoked during a request, undo the temporary decrement. */
if (cx->requestDepth)
rt->requestCount++;
cx->gcActive = JS_FALSE;
JS_NOTIFY_GC_DONE(rt);
JS_UNLOCK_GC(rt);
#endif
if (rt->gcCallback)
(void) rt->gcCallback(cx, JSGC_END);
}

View File

@@ -1,110 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsgc_h___
#define jsgc_h___
/*
* JS Garbage Collector.
*/
#include "jspubtd.h"
JS_BEGIN_EXTERN_C
/* GC thing type indexes. */
#define GCX_OBJECT 0 /* JSObject */
#define GCX_STRING 1 /* JSString */
#define GCX_DOUBLE 2 /* jsdouble */
#define GCX_DECIMAL 3 /* JSDecimal */
#define GCX_NTYPES 4
/* GC flag definitions (type index goes in low bits). */
#define GCF_TYPEMASK JS_BITMASK(2) /* use low bits for type */
#define GCF_MARK JS_BIT(2) /* mark bit */
#define GCF_FINAL JS_BIT(3) /* in finalization bit */
#define GCF_LOCKBIT 4 /* lock bit shift and mask */
#define GCF_LOCKMASK (JS_BITMASK(4) << GCF_LOCKBIT)
#define GCF_LOCK JS_BIT(GCF_LOCKBIT) /* lock request bit in API */
#if 1
/*
* Since we're forcing a GC from JS_GC anyway, don't bother wasting cycles
* loading oldval. XXX remove implied force, poke in addroot/removeroot, &c
*/
#define GC_POKE(cx, oldval) ((cx)->runtime->gcPoke = JS_TRUE)
#else
#define GC_POKE(cx, oldval) ((cx)->runtime->gcPoke = JSVAL_IS_GCTHING(oldval))
#endif
extern JSBool
js_InitGC(JSRuntime *rt, uint32 maxbytes);
extern void
js_FinishGC(JSRuntime *rt);
extern JSBool
js_AddRoot(JSContext *cx, void *rp, const char *name);
extern JSBool
js_RemoveRoot(JSContext *cx, void *rp);
extern void *
js_AllocGCThing(JSContext *cx, uintN flags);
extern JSBool
js_LockGCThing(JSContext *cx, void *thing);
extern JSBool
js_UnlockGCThing(JSContext *cx, void *thing);
extern JS_FRIEND_API(void)
js_ForceGC(JSContext *cx);
extern void
js_GC(JSContext *cx);
#ifdef JS_GCMETER
typedef struct JSGCStats {
uint32 alloc; /* number of allocation attempts */
uint32 freelen; /* gcFreeList length */
uint32 recycle; /* number of things recycled through gcFreeList */
uint32 retry; /* allocation attempt retries after running the GC */
uint32 fail; /* allocation failures */
uint32 lock; /* valid lock calls */
uint32 unlock; /* valid unlock calls */
uint32 stuck; /* stuck reference counts seen by lock calls */
uint32 unstuck; /* unlock calls that saw a stuck lock count */
uint32 depth; /* mark recursion depth */
uint32 maxdepth; /* maximum mark recursion depth */
uint32 maxlevel; /* maximum GC nesting (indirect recursion) level */
uint32 poke; /* number of potentially useful GC calls */
uint32 nopoke; /* useless GC calls where js_PokeGC was not set */
uint32 badarena; /* thing arena corruption */
uint32 badflag; /* flags arena corruption */
uint32 afree; /* thing arenas freed so far */
uint32 fafree; /* flags arenas freed so far */
} JSGCStats;
extern void
js_DumpGCStats(JSRuntime *rt, FILE *fp);
#endif /* JS_GCMETER */
JS_END_EXTERN_C
#endif /* jsgc_h___ */

View File

@@ -1,457 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* PR hash table package.
*/
#include <stdlib.h>
#include <string.h>
#include "jstypes.h"
#include "jsbit.h"
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#ifndef NSPR20
#include "jshash.h"
#else
/* Removed by JSIFY: #include "JShash.h"
*/
#include "jshash.h" /* Added by JSIFY */
#endif
/* Compute the number of buckets in ht */
#define NBUCKETS(ht) JS_BIT(PR_HASH_BITS - (ht)->shift)
/* The smallest table has 16 buckets */
#define MINBUCKETSLOG2 4
#define MINBUCKETS JS_BIT(MINBUCKETSLOG2)
/* Compute the maximum entries given n buckets that we will tolerate, ~90% */
#define OVERLOADED(n) ((n) - ((n) >> 3))
/* Compute the number of entries below which we shrink the table by half */
#define UNDERLOADED(n) (((n) > MINBUCKETS) ? ((n) >> 2) : 0)
/*
** Stubs for default hash allocator ops.
*/
static void *
DefaultAllocTable(void *pool, size_t size)
{
return malloc(size);
}
static void
DefaultFreeTable(void *pool, void *item)
{
free(item);
}
static JSHashEntry *
DefaultAllocEntry(void *pool, const void *key)
{
return malloc(sizeof(JSHashEntry));
}
static void
DefaultFreeEntry(void *pool, JSHashEntry *he, uintN flag)
{
if (flag == HT_FREE_ENTRY)
free(he);
}
static JSHashAllocOps defaultHashAllocOps = {
DefaultAllocTable, DefaultFreeTable,
DefaultAllocEntry, DefaultFreeEntry
};
IMPLEMENT(JSHashTable *)
JS_NewHashTable(uint32 n, JSHashFunction keyHash,
JSHashComparator keyCompare, JSHashComparator valueCompare,
JSHashAllocOps *allocOps, void *allocPriv)
{
JSHashTable *ht;
size_t nb;
if (n <= MINBUCKETS) {
n = MINBUCKETSLOG2;
} else {
n = JS_CeilingLog2(n);
if ((int32)n < 0)
return NULL;
}
if (!allocOps) allocOps = &defaultHashAllocOps;
ht = (*allocOps->allocTable)(allocPriv, sizeof *ht);
if (!ht)
return NULL;
memset(ht, 0, sizeof *ht);
ht->shift = PR_HASH_BITS - n;
n = JS_BIT(n);
#if defined(XP_PC) && defined _MSC_VER && _MSC_VER <= 800
if (n > 16000) {
(*allocOps->freeTable)(allocPriv, ht);
return NULL;
}
#endif /* WIN16 */
nb = n * sizeof(JSHashEntry *);
ht->buckets = (*allocOps->allocTable)(allocPriv, nb);
if (!ht->buckets) {
(*allocOps->freeTable)(allocPriv, ht);
return NULL;
}
memset(ht->buckets, 0, nb);
ht->keyHash = keyHash;
ht->keyCompare = keyCompare;
ht->valueCompare = valueCompare;
ht->allocOps = allocOps;
ht->allocPriv = allocPriv;
return ht;
}
IMPLEMENT(void)
JS_HashTableDestroy(JSHashTable *ht)
{
uint32 i, n;
JSHashEntry *he, *next;
JSHashAllocOps *allocOps = ht->allocOps;
void *allocPriv = ht->allocPriv;
n = NBUCKETS(ht);
for (i = 0; i < n; i++) {
for (he = ht->buckets[i]; he; he = next) {
next = he->next;
(*allocOps->freeEntry)(allocPriv, he, HT_FREE_ENTRY);
}
}
#ifdef DEBUG
memset(ht->buckets, 0xDB, n * sizeof ht->buckets[0]);
#endif
(*allocOps->freeTable)(allocPriv, ht->buckets);
#ifdef DEBUG
memset(ht, 0xDB, sizeof *ht);
#endif
(*allocOps->freeTable)(allocPriv, ht);
}
/*
** Multiplicative hash, from Knuth 6.4.
*/
IMPLEMENT(JSHashEntry **)
JS_HashTableRawLookup(JSHashTable *ht, JSHashNumber keyHash, const void *key)
{
JSHashEntry *he, **hep, **hep0;
JSHashNumber h;
#ifdef HASHMETER
ht->nlookups++;
#endif
h = keyHash * PR_GOLDEN_RATIO;
h >>= ht->shift;
hep = hep0 = &ht->buckets[h];
while ((he = *hep) != NULL) {
if (he->keyHash == keyHash && (*ht->keyCompare)(key, he->key)) {
/* Move to front of chain if not already there */
if (hep != hep0) {
*hep = he->next;
he->next = *hep0;
*hep0 = he;
}
return hep0;
}
hep = &he->next;
#ifdef HASHMETER
ht->nsteps++;
#endif
}
return hep;
}
IMPLEMENT(JSHashEntry *)
JS_HashTableRawAdd(JSHashTable *ht, JSHashEntry **hep,
JSHashNumber keyHash, const void *key, void *value)
{
uint32 i, n;
JSHashEntry *he, *next, **oldbuckets;
size_t nb;
/* Grow the table if it is overloaded */
n = NBUCKETS(ht);
if (ht->nentries >= OVERLOADED(n)) {
#ifdef HASHMETER
ht->ngrows++;
#endif
ht->shift--;
oldbuckets = ht->buckets;
#if defined(XP_PC) && defined _MSC_VER && _MSC_VER <= 800
if (2 * n > 16000)
return NULL;
#endif /* WIN16 */
nb = 2 * n * sizeof(JSHashEntry *);
ht->buckets = (*ht->allocOps->allocTable)(ht->allocPriv, nb);
if (!ht->buckets) {
ht->buckets = oldbuckets;
return NULL;
}
memset(ht->buckets, 0, nb);
for (i = 0; i < n; i++) {
for (he = oldbuckets[i]; he; he = next) {
next = he->next;
hep = JS_HashTableRawLookup(ht, he->keyHash, he->key);
JS_ASSERT(*hep == NULL);
he->next = NULL;
*hep = he;
}
}
#ifdef DEBUG
memset(oldbuckets, 0xDB, n * sizeof oldbuckets[0]);
#endif
(*ht->allocOps->freeTable)(ht->allocPriv, oldbuckets);
hep = JS_HashTableRawLookup(ht, keyHash, key);
}
/* Make a new key value entry */
he = (*ht->allocOps->allocEntry)(ht->allocPriv, key);
if (!he)
return NULL;
he->keyHash = keyHash;
he->key = key;
he->value = value;
he->next = *hep;
*hep = he;
ht->nentries++;
return he;
}
IMPLEMENT(JSHashEntry *)
JS_HashTableAdd(JSHashTable *ht, const void *key, void *value)
{
JSHashNumber keyHash;
JSHashEntry *he, **hep;
keyHash = (*ht->keyHash)(key);
hep = JS_HashTableRawLookup(ht, keyHash, key);
if ((he = *hep) != NULL) {
/* Hit; see if values match */
if ((*ht->valueCompare)(he->value, value)) {
/* key,value pair is already present in table */
return he;
}
if (he->value)
(*ht->allocOps->freeEntry)(ht->allocPriv, he, HT_FREE_VALUE);
he->value = value;
return he;
}
return JS_HashTableRawAdd(ht, hep, keyHash, key, value);
}
IMPLEMENT(void)
JS_HashTableRawRemove(JSHashTable *ht, JSHashEntry **hep, JSHashEntry *he)
{
uint32 i, n;
JSHashEntry *next, **oldbuckets;
size_t nb;
*hep = he->next;
(*ht->allocOps->freeEntry)(ht->allocPriv, he, HT_FREE_ENTRY);
/* Shrink table if it's underloaded */
n = NBUCKETS(ht);
if (--ht->nentries < UNDERLOADED(n)) {
#ifdef HASHMETER
ht->nshrinks++;
#endif
ht->shift++;
oldbuckets = ht->buckets;
nb = n * sizeof(JSHashEntry*) / 2;
ht->buckets = (*ht->allocOps->allocTable)(ht->allocPriv, nb);
if (!ht->buckets) {
ht->buckets = oldbuckets;
return;
}
memset(ht->buckets, 0, nb);
for (i = 0; i < n; i++) {
for (he = oldbuckets[i]; he; he = next) {
next = he->next;
hep = JS_HashTableRawLookup(ht, he->keyHash, he->key);
JS_ASSERT(*hep == NULL);
he->next = NULL;
*hep = he;
}
}
#ifdef DEBUG
memset(oldbuckets, 0xDB, n * sizeof oldbuckets[0]);
#endif
(*ht->allocOps->freeTable)(ht->allocPriv, oldbuckets);
}
}
IMPLEMENT(JSBool)
JS_HashTableRemove(JSHashTable *ht, const void *key)
{
JSHashNumber keyHash;
JSHashEntry *he, **hep;
keyHash = (*ht->keyHash)(key);
hep = JS_HashTableRawLookup(ht, keyHash, key);
if ((he = *hep) == NULL)
return JS_FALSE;
/* Hit; remove element */
JS_HashTableRawRemove(ht, hep, he);
return JS_TRUE;
}
IMPLEMENT(void *)
JS_HashTableLookup(JSHashTable *ht, const void *key)
{
JSHashNumber keyHash;
JSHashEntry *he, **hep;
keyHash = (*ht->keyHash)(key);
hep = JS_HashTableRawLookup(ht, keyHash, key);
if ((he = *hep) != NULL) {
return he->value;
}
return NULL;
}
/*
** Iterate over the entries in the hash table calling func for each
** entry found. Stop if "f" says to (return value & JS_ENUMERATE_STOP).
** Return a count of the number of elements scanned.
*/
IMPLEMENT(int)
JS_HashTableEnumerateEntries(JSHashTable *ht, JSHashEnumerator f, void *arg)
{
JSHashEntry *he, **hep;
uint32 i, nbuckets;
int rv, n = 0;
JSHashEntry *todo = NULL;
nbuckets = NBUCKETS(ht);
for (i = 0; i < nbuckets; i++) {
hep = &ht->buckets[i];
while ((he = *hep) != NULL) {
rv = (*f)(he, n, arg);
n++;
if (rv & (HT_ENUMERATE_REMOVE | HT_ENUMERATE_UNHASH)) {
*hep = he->next;
if (rv & HT_ENUMERATE_REMOVE) {
he->next = todo;
todo = he;
}
} else {
hep = &he->next;
}
if (rv & HT_ENUMERATE_STOP) {
goto out;
}
}
}
out:
hep = &todo;
while ((he = *hep) != NULL) {
JS_HashTableRawRemove(ht, hep, he);
}
return n;
}
#ifdef HASHMETER
#include <math.h>
#include <stdio.h>
IMPLEMENT(void)
JS_HashTableDumpMeter(JSHashTable *ht, JSHashEnumerator dump, FILE *fp)
{
double mean, variance;
uint32 nchains, nbuckets;
uint32 i, n, maxChain, maxChainLen;
JSHashEntry *he;
variance = 0;
nchains = 0;
maxChainLen = 0;
nbuckets = NBUCKETS(ht);
for (i = 0; i < nbuckets; i++) {
he = ht->buckets[i];
if (!he)
continue;
nchains++;
for (n = 0; he; he = he->next)
n++;
variance += n * n;
if (n > maxChainLen) {
maxChainLen = n;
maxChain = i;
}
}
mean = (double)ht->nentries / nchains;
variance = fabs(variance / nchains - mean * mean);
fprintf(fp, "\nHash table statistics:\n");
fprintf(fp, " number of lookups: %u\n", ht->nlookups);
fprintf(fp, " number of entries: %u\n", ht->nentries);
fprintf(fp, " number of grows: %u\n", ht->ngrows);
fprintf(fp, " number of shrinks: %u\n", ht->nshrinks);
fprintf(fp, " mean steps per hash: %g\n", (double)ht->nsteps
/ ht->nlookups);
fprintf(fp, "mean hash chain length: %g\n", mean);
fprintf(fp, " standard deviation: %g\n", sqrt(variance));
fprintf(fp, " max hash chain length: %u\n", maxChainLen);
fprintf(fp, " max hash chain: [%u]\n", maxChain);
for (he = ht->buckets[maxChain], i = 0; he; he = he->next, i++)
if ((*dump)(he, i, fp) != HT_ENUMERATE_NEXT)
break;
}
#endif /* HASHMETER */
IMPLEMENT(int)
JS_HashTableDump(JSHashTable *ht, JSHashEnumerator dump, FILE *fp)
{
int count;
count = JS_HashTableEnumerateEntries(ht, dump, fp);
#ifdef HASHMETER
JS_HashTableDumpMeter(ht, dump, fp);
#endif
return count;
}
IMPLEMENT(JSHashNumber)
JS_HashString(const void *key)
{
JSHashNumber h;
const unsigned char *s;
h = 0;
for (s = key; *s; s++)
h = (h >> 28) ^ (h << 4) ^ *s;
return h;
}
IMPLEMENT(int)
JS_CompareValues(const void *v1, const void *v2)
{
return v1 == v2;
}

View File

@@ -1,131 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jshash_h___
#define jshash_h___
/*
* API to portable hash table code.
*/
#include <stddef.h>
#include <stdio.h>
#include "jstypes.h"
#include "jscompat.h"
JS_BEGIN_EXTERN_C
typedef uint32 JSHashNumber;
typedef struct JSHashEntry JSHashEntry;
typedef struct JSHashTable JSHashTable;
#define PR_HASH_BITS 32
#define PR_GOLDEN_RATIO 0x9E3779B9U
typedef JSHashNumber (*JSHashFunction)(const void *key);
typedef intN (*JSHashComparator)(const void *v1, const void *v2);
typedef intN (*JSHashEnumerator)(JSHashEntry *he, intN i, void *arg);
/* Flag bits in JSHashEnumerator's return value */
#define HT_ENUMERATE_NEXT 0 /* continue enumerating entries */
#define HT_ENUMERATE_STOP 1 /* stop enumerating entries */
#define HT_ENUMERATE_REMOVE 2 /* remove and free the current entry */
#define HT_ENUMERATE_UNHASH 4 /* just unhash the current entry */
typedef struct JSHashAllocOps {
void * (*allocTable)(void *pool, size_t size);
void (*freeTable)(void *pool, void *item);
JSHashEntry * (*allocEntry)(void *pool, const void *key);
void (*freeEntry)(void *pool, JSHashEntry *he, uintN flag);
} JSHashAllocOps;
#define HT_FREE_VALUE 0 /* just free the entry's value */
#define HT_FREE_ENTRY 1 /* free value and entire entry */
struct JSHashEntry {
JSHashEntry *next; /* hash chain linkage */
JSHashNumber keyHash; /* key hash function result */
const void *key; /* ptr to opaque key */
void *value; /* ptr to opaque value */
};
struct JSHashTable {
JSHashEntry **buckets; /* vector of hash buckets */
uint32 nentries; /* number of entries in table */
uint32 shift; /* multiplicative hash shift */
JSHashFunction keyHash; /* key hash function */
JSHashComparator keyCompare; /* key comparison function */
JSHashComparator valueCompare; /* value comparison function */
JSHashAllocOps *allocOps; /* allocation operations */
void *allocPriv; /* allocation private data */
#ifdef HASHMETER
uint32 nlookups; /* total number of lookups */
uint32 nsteps; /* number of hash chains traversed */
uint32 ngrows; /* number of table expansions */
uint32 nshrinks; /* number of table contractions */
#endif
};
/*
* Create a new hash table.
* If allocOps is null, use default allocator ops built on top of malloc().
*/
EXTERN(JSHashTable *)
JS_NewHashTable(uint32 n, JSHashFunction keyHash,
JSHashComparator keyCompare, JSHashComparator valueCompare,
JSHashAllocOps *allocOps, void *allocPriv);
EXTERN(void)
JS_HashTableDestroy(JSHashTable *ht);
/* Low level access methods */
EXTERN(JSHashEntry **)
JS_HashTableRawLookup(JSHashTable *ht, JSHashNumber keyHash, const void *key);
EXTERN(JSHashEntry *)
JS_HashTableRawAdd(JSHashTable *ht, JSHashEntry **hep, JSHashNumber keyHash,
const void *key, void *value);
EXTERN(void)
JS_HashTableRawRemove(JSHashTable *ht, JSHashEntry **hep, JSHashEntry *he);
/* Higher level access methods */
EXTERN(JSHashEntry *)
JS_HashTableAdd(JSHashTable *ht, const void *key, void *value);
EXTERN(JSBool)
JS_HashTableRemove(JSHashTable *ht, const void *key);
EXTERN(intN)
JS_HashTableEnumerateEntries(JSHashTable *ht, JSHashEnumerator f, void *arg);
EXTERN(void *)
JS_HashTableLookup(JSHashTable *ht, const void *key);
EXTERN(intN)
JS_HashTableDump(JSHashTable *ht, JSHashEnumerator dump, FILE *fp);
/* General-purpose C string hash function. */
EXTERN(JSHashNumber)
JS_HashString(const void *key);
/* Stub function just returns v1 == v2 */
IMPLEMENT(intN)
JS_CompareValues(const void *v1, const void *v2);
JS_END_EXTERN_C
#endif /* jshash_h___ */

View File

@@ -1,482 +0,0 @@
#!/usr/local/bin/perl
# This script modifies C code to use the hijacked NSPR routines that are
# now baked into the JavaScript engine rather than using the NSPR
# routines that they were based on, i.e. types like PRArenaPool are changed
# to JSArenaPool.
#
# This script was used in 9/98 to facilitate the incorporation of some NSPR
# code into the JS engine so as to minimize dependency on NSPR.
#
# Command-line: jsify.pl [options] [filename]*
#
# Options:
# -r Reverse direction of transformation, i.e. JS ==> NSPR2
# -outdir Directory in which to place output files
# NSPR2 symbols that will be modified to JS symbols, e.g.
# PRArena <==> JSArena
@NSPR_symbols = (
"PRArena",
"PRArenaPool",
"PRArenaStats",
"PR_ARENAMETER",
"PR_ARENA_",
"PR_ARENA_ALIGN",
"PR_ARENA_ALLOCATE",
"PR_ARENA_CONST_ALIGN_MASK",
"PR_ARENA_DEFAULT_ALIGN",
"PR_ARENA_DESTROY",
"PR_ARENA_GROW",
"PR_ARENA_MARK",
"PR_ARENA_RELEASE",
"PR_smprintf",
"PR_smprintf_free",
"PR_snprintf",
"PR_sprintf_append",
"PR_sscanf",
"PR_sxprintf",
"PR_vsmprintf",
"PR_vsnprintf",
"PR_vsprintf_append",
"PR_vsxprintf",
"PRCList",
"PRCListStr",
"PRCLists",
"PRDestroyEventProc",
"PREvent",
"PREventFunProc",
"PREventQueue",
"PRHandleEventProc",
"PR_PostEvent",
"PR_PostSynchronousEvent",
"PR_ProcessPendingEvents",
"PR_CreateEventQueue",
"PR_DequeueEvent",
"PR_DestroyEvent",
"PR_DestroyEventQueue",
"PR_EventAvailable",
"PR_EventLoop",
"PR_GetEvent",
"PR_GetEventOwner",
"PR_GetEventQueueMonitor",
"PR_GetEventQueueSelectFD",
"PR_GetMainEventQueue",
"PR_HandleEvent",
"PR_InitEvent",
"PR_ENTER_EVENT_QUEUE_MONITOR",
"PR_EXIT_EVENT_QUEUE_MONITOR",
"PR_MapEvents",
"PR_RevokeEvents",
"PRFileDesc",
"PRHashAllocOps",
"PRHashComparator",
"PRHashEntry",
"PRHashEnumerator",
"PRHashFunction",
"PRHashNumber",
"PRHashTable",
"PR_HashString",
"PR_HashTableAdd",
"PR_HashTableDestroy",
"PR_HashTableDump",
"PR_HashTableEnumerateEntries",
"PR_HashTableLookup",
"PR_HashTableRawAdd",
"PR_HashTableRawLookup",
"PR_HashTableRawRemove",
"PR_HashTableRemove",
"PRBool",
"PRFloat64",
"PRInt16",
"PRInt32",
"PRInt64",
"PRInt8",
"PRIntn",
"PRUint16",
"PRUint32",
"PRUint64",
"PRUint8",
"PRUintn",
"PRPtrDiff",
"PRPtrdiff",
"PRUptrdiff",
"PRUword",
"PRWord",
"PRPackedBool",
"PRSize",
"PRStatus",
"pruword",
"prword",
"prword_t",
"PR_ALIGN_OF_DOUBLE",
"PR_ALIGN_OF_FLOAT",
"PR_ALIGN_OF_INT",
"PR_ALIGN_OF_INT64",
"PR_ALIGN_OF_LONG",
"PR_ALIGN_OF_POINTER",
"PR_ALIGN_OF_SHORT",
"PR_ALIGN_OF_WORD",
"PR_BITS_PER_BYTE",
"PR_BITS_PER_BYTE_LOG2",
"PR_BITS_PER_DOUBLE",
"PR_BITS_PER_DOUBLE_LOG2",
"PR_BITS_PER_FLOAT",
"PR_BITS_PER_FLOAT_LOG2",
"PR_BITS_PER_INT",
"PR_BITS_PER_INT64",
"PR_BITS_PER_INT64_LOG2",
"PR_BITS_PER_INT_LOG2",
"PR_BITS_PER_LONG",
"PR_BITS_PER_LONG_LOG2",
"PR_BITS_PER_SHORT",
"PR_BITS_PER_SHORT_LOG2",
"PR_BITS_PER_WORD",
"PR_BITS_PER_WORD_LOG2",
"PR_BYTES_PER_BYTE",
"PR_BYTES_PER_DOUBLE",
"PR_BYTES_PER_DWORD",
"PR_BYTES_PER_DWORD_LOG2",
"PR_BYTES_PER_FLOAT",
"PR_BYTES_PER_INT",
"PR_BYTES_PER_INT64",
"PR_BYTES_PER_LONG",
"PR_BYTES_PER_SHORT",
"PR_BYTES_PER_WORD",
"PR_BYTES_PER_WORD_LOG2",
"PRSegment",
"PRSegmentAccess",
"PRStuffFunc",
"PRThread",
"PR_APPEND_LINK",
"PR_ASSERT",
"PR_ATOMIC_DWORD_LOAD",
"PR_ATOMIC_DWORD_STORE",
"PR_Abort",
"PR_ArenaAllocate",
"PR_ArenaCountAllocation",
"PR_ArenaCountGrowth",
"PR_ArenaCountInplaceGrowth",
"PR_ArenaCountRelease",
"PR_ArenaCountRetract",
"PR_ArenaFinish",
"PR_ArenaGrow",
"PR_ArenaRelease",
"PR_CompactArenaPool",
"PR_DumpArenaStats",
"PR_FinishArenaPool",
"PR_FreeArenaPool",
"PR_InitArenaPool",
"PR_Assert",
"PR_AttachThread",
"PR_BEGIN_EXTERN_C",
"PR_BEGIN_MACRO",
"PR_BIT",
"PR_BITMASK",
"PR_BUFFER_OVERFLOW_ERROR",
"PR_CALLBACK",
"PR_CALLBACK_DECL",
"PR_CALLOC",
"PR_CEILING_LOG2",
"PR_CLEAR_ARENA",
"PR_CLEAR_BIT",
"PR_CLEAR_UNUSED",
"PR_CLIST_IS_EMPTY",
"PR_COUNT_ARENA",
"PR_CURRENT_THREAD",
"PR_GetSegmentAccess",
"PR_GetSegmentSize",
"PR_GetSegmentVaddr",
"PR_GrowSegment",
"PR_DestroySegment",
"PR_MapSegment",
"PR_NewSegment",
"PR_Segment",
"PR_Seg",
"PR_SEGMENT_NONE",
"PR_SEGMENT_RDONLY",
"PR_SEGMENT_RDWR",
"PR_Calloc",
"PR_CeilingLog2",
"PR_CompareStrings",
"PR_CompareValues",
"PR_DELETE",
"PR_END_EXTERN_C",
"PR_END_MACRO",
"PR_ENUMERATE_STOP",
"PR_FAILURE",
"PR_FALSE",
"PR_FLOOR_LOG2",
"PR_FREEIF",
"PR_FREE_PATTERN",
"PR_FloorLog2",
"PR_FormatTime",
"PR_Free",
"PR_GetEnv",
"PR_GetError",
"PR_INIT_ARENA_POOL",
"PR_INIT_CLIST",
"PR_INIT_STATIC_CLIST",
"PR_INLINE",
"PR_INSERT_AFTER",
"PR_INSERT_BEFORE",
"PR_INSERT_LINK",
"PR_INT32",
"PR_INTERVAL_NO_TIMEOUT",
"PR_INTERVAL_NO_WAIT",
"PR_Init",
"PR_LIST_HEAD",
"PR_LIST_TAIL",
"PR_LOG",
"PR_LOGGING",
"PR_LOG_ALWAYS",
"PR_LOG_BEGIN",
"PR_LOG_DEBUG",
"PR_LOG_DEFINE",
"PR_LOG_END",
"PR_LOG_ERROR",
"PR_LOG_MAX",
"PR_LOG_MIN",
"PR_LOG_NONE",
"PR_LOG_NOTICE",
"PR_LOG_TEST",
"PR_LOG_WARN",
"PR_LOG_WARNING",
"PR_LogFlush",
"PR_LogPrint",
"PR_MALLOC",
"PR_MAX",
"PR_MD_calloc",
"PR_MD_free",
"PR_MD_malloc",
"PR_MD_realloc",
"PR_MIN",
"PR_Malloc",
"PR_NEW",
"PR_NEWZAP",
"PR_NEXT_LINK",
"PR_NOT_REACHED",
"PR_NewCondVar",
"PR_NewHashTable",
"PR_NewLogModule",
"PR_PREV_LINK",
"PR_PUBLIC_API",
"PR_PUBLIC_DATA",
"PR_RANGE_ERROR",
"PR_REALLOC",
"PR_REMOVE_AND_INIT_LINK",
"PR_REMOVE_LINK",
"PR_ROUNDUP",
"PR_Realloc",
"PR_SET_BIT",
"PR_STATIC_CALLBACK",
"PR_SUCCESS",
"PR_SetError",
"PR_SetLogBuffering",
"PR_SetLogFile",
"PR_TEST_BIT",
"PR_TRUE",
"PR_UINT32",
"PR_UPTRDIFF",
"prarena_h___",
"prbit_h___",
"prclist_h___",
"prdtoa_h___",
"prlog_h___",
"prlong_h___",
"prmacos_h___",
"prmem_h___",
"prprf_h___",
"prtypes_h___",
"prarena",
"prbit",
"prbitmap_t",
"prclist",
"prcpucfg",
"prdtoa",
"prhash",
"plhash",
"prlong",
"prmacos",
"prmem",
"prosdep",
"protypes",
"prprf",
"prtypes"
);
while ($ARGV[0] =~ /^-/) {
if ($ARGV[0] eq "-r") {
shift;
$reverse_conversion = 1;
} elsif ($ARGV[0] eq "-outdir") {
shift;
$outdir = shift;
}
}
# Given an NSPR symbol compute the JS equivalent or
# vice-versa
sub subst {
local ($replacement);
local ($sym) = @_;
$replacement = substr($sym,0,2) eq "pr" ? "js" : "JS";
$replacement .= substr($sym, 2);
return $replacement;
}
# Build the regular expression that will convert between the NSPR
# types and the JS types
if ($reverse_conversion) {
die "Not implemented yet";
} else {
foreach $sym (@NSPR_symbols) {
$regexp .= $sym . "|"
}
# Get rid of the last "!"
chop $regexp;
# Replace PR* with JS* and replace pr* with js*
$regexp = 's/(^|\\W)(' . $regexp . ')/$1 . &subst($2)/eg';
# print $regexp;
}
# Pre-compile a little subroutine to perform the regexp substitution
# between NSPR types and JS types
eval('sub convert_from_NSPR {($line) = @_; $line =~ ' . $regexp . ';}');
sub convert_mallocs {
($line) = @_;
$line =~ s/PR_MALLOC/malloc/g;
$line =~ s/PR_REALLOC/realloc/g;
$line =~ s/PR_FREE/free/g;
return $line;
}
sub convert_includes {
($line) = @_;
if ($line !~ /include/) {
return $line;
}
if ($line =~ /prlog\.h/) {
chop $line;
$line = "/* Removed by JSIFY: $line */\n";
$line .= '#include "jsutil.h"'. " /* Added by JSIFY */\n";
} elsif ($line =~ /plhash\.h/) {
$line = "/* Removed by JSIFY: $line */\n";
$line .= '#include "jshash.h"'. " /* Added by JSIFY */\n";
} elsif ($line =~ /plarena\.h/) {
$line = "/* Removed by JSIFY: $line */\n";
$line .= '#include "jsarena.h"'. " /* Added by JSIFY */\n";
} elsif ($line =~ /prmem\.h/) {
$line = "/* Removed by JSIFY: $line */\n";
} elsif ($line =~ /jsmsg\.def/) {
$line = '#include "js.msg"' . "\n";
} elsif ($line =~ /shellmsg\.def/) {
$line = '#include "jsshell.msg"' . "\n";
} elsif ($line =~ /jsopcode\.def/) {
$line = '#include "jsopcode.tbl"' . "\n";
}
return $line;
}
sub convert_declarations {
($line) = @_;
$line =~ s/PR_EXTERN/EXTERN/g;
$line =~ s/PR_IMPLEMENT/IMPLEMENT/g;
$line =~ s/PR_CALLBACK/DLL_CALLBACK/g;
$line =~ s/PR_STATIC_CALLBACK/STATIC_DLL_CALLBACK/g;
$line =~ s/PR_IMPORT/IMPORT/g;
$line =~ s/PR_PUBLIC_API/PUBLIC_API/g;
$line =~ s/PR_PUBLIC_DATA/PUBLIC_DATA/g;
return $line;
}
sub convert_long_long_macros {
($line) = @_;
$line =~ s/\b(LL_)/JSLL_/g;
return $line;
}
sub convert_asserts {
($line) = @_;
$line =~ s/\bPR_ASSERT/JS_ASSERT/g;
return $line;
}
while ($#ARGV >= 0) {
$infile = shift;
# Change filename, e.g. prtime.h to jsprtime.h, except for legacy
# files that start with 'prmj', like prmjtime.h.
$outfile = $infile;
if ($infile !~ /^prmj/) {
$outfile =~ s/^pr/js/;
$outfile =~ s/^pl/js/;
}
if ($outdir) {
$outfile = $outdir . '/' . $outfile;
}
if ($infile eq $outfile) {
die "Error: refuse to overwrite $outfile, use -outdir option."
}
die "Can't open $infile" if !open(INFILE, "<$infile");
die "Can't open $outfile for writing" if !open(OUTFILE, ">$outfile");
while (<INFILE>) {
$line = $_;
#Get rid of #include "prlog.h"
&convert_includes($line);
# Rename PR_EXTERN, PR_IMPORT, etc.
&convert_declarations($line);
# Convert from PR_MALLOC to malloc, etc.
&convert_mallocs($line);
# Convert from PR_ASSERT to JS_ASSERT
# &convert_asserts($line);
# Convert from, e.g. PRArena to JSPRArena
&convert_from_NSPR($line);
# Change LL_* macros to JSLL_*
&convert_long_long_macros($line);
print OUTFILE $line;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,209 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsinterp_h___
#define jsinterp_h___
/*
* JS interpreter interface.
*/
#include "jsprvtd.h"
#include "jspubtd.h"
/*
* JS stack frame, allocated on the C stack.
*/
struct JSStackFrame {
JSObject *callobj; /* lazily created Call object */
JSObject *argsobj; /* lazily created arguments object */
JSScript *script; /* script being interpreted */
JSFunction *fun; /* function being called or null */
JSObject *thisp; /* "this" pointer if in method */
uintN argc; /* actual argument count */
jsval *argv; /* base of argument stack slots */
jsval rval; /* function return value */
uintN nvars; /* local variable count */
jsval *vars; /* base of variable stack slots */
JSStackFrame *down; /* previous frame */
void *annotation; /* used by Java security */
JSObject *scopeChain; /* scope chain */
jsbytecode *pc; /* program counter */
jsval *sp; /* stack pointer */
uintN sharpDepth; /* array/object initializer depth */
JSObject *sharpArray; /* scope for #n= initializer vars */
JSPackedBool constructing; /* true if called via new operator */
uint8 overrides; /* bit-set of overridden Call properties */
JSPackedBool debugging; /* true if for JS_EvaluateInStackFrame */
JSStackFrame *dormantNext; /* next dormant frame chain */
};
/*
* Property cache for quickened get/set property opcodes.
*/
#define PROPERTY_CACHE_LOG2 10
#define PROPERTY_CACHE_SIZE JS_BIT(PROPERTY_CACHE_LOG2)
#define PROPERTY_CACHE_MASK JS_BITMASK(PROPERTY_CACHE_LOG2)
#define PROPERTY_CACHE_HASH(obj, id) \
((((jsuword)(obj) >> JSVAL_TAGBITS) ^ (jsuword)(id)) & PROPERTY_CACHE_MASK)
#ifdef JS_THREADSAFE
#if HAVE_ATOMIC_DWORD_ACCESS
#define PCE_LOAD(cache, pce, entry) JS_ATOMIC_DWORD_LOAD(pce, entry)
#define PCE_STORE(cache, pce, entry) JS_ATOMIC_DWORD_STORE(pce, entry)
#else /* !HAVE_ATOMIC_DWORD_ACCESS */
#define PCE_LOAD(cache, pce, entry) \
JS_BEGIN_MACRO \
uint32 _prefills; \
uint32 _fills = (cache)->fills; \
do { \
/* Load until cache->fills is stable (see FILL macro below). */ \
_prefills = _fills; \
(entry) = *(pce); \
} while ((_fills = (cache)->fills) != _prefills); \
JS_END_MACRO
#define PCE_STORE(cache, pce, entry) \
JS_BEGIN_MACRO \
do { \
/* Store until no racing collider stores half or all of pce. */ \
*(pce) = (entry); \
} while (PCE_OBJECT(*pce) != PCE_OBJECT(entry) || \
PCE_PROPERTY(*pce) != PCE_PROPERTY(entry)); \
JS_END_MACRO
#endif /* !HAVE_ATOMIC_DWORD_ACCESS */
#else /* !JS_THREADSAFE */
#define PCE_LOAD(cache, pce, entry) ((entry) = *(pce))
#define PCE_STORE(cache, pce, entry) (*(pce) = (entry))
#endif /* !JS_THREADSAFE */
typedef union JSPropertyCacheEntry {
struct {
JSObject *object; /* weak link to object */
JSProperty *property; /* weak link to property, or not-found id */
} s;
#ifdef HAVE_ATOMIC_DWORD_ACCESS
prdword align;
#endif
} JSPropertyCacheEntry;
/* These may be called in lvalue or rvalue position. */
#define PCE_OBJECT(entry) ((entry).s.object)
#define PCE_PROPERTY(entry) ((entry).s.property)
typedef struct JSPropertyCache {
JSPropertyCacheEntry table[PROPERTY_CACHE_SIZE];
JSBool empty;
uint32 fills;
uint32 recycles;
uint32 tests;
uint32 misses;
uint32 flushes;
} JSPropertyCache;
/* Property-not-found lookup results are cached using this invalid pointer. */
#define PROP_NOT_FOUND(obj,id) ((JSProperty *) ((jsword)(id) | 1))
#define PROP_NOT_FOUND_ID(prop) ((jsid) ((jsword)(prop) & ~1))
#define PROP_FOUND(prop) ((prop) && ((jsword)(prop) & 1) == 0)
#define PROPERTY_CACHE_FILL(cx, cache, obj, id, prop) \
JS_BEGIN_MACRO \
uintN _hashIndex = (uintN)PROPERTY_CACHE_HASH(obj, id); \
JSPropertyCache *_cache = (cache); \
JSPropertyCacheEntry *_pce = &_cache->table[_hashIndex]; \
JSPropertyCacheEntry _entry; \
JSProperty *_pce_prop; \
PCE_LOAD(_cache, _pce, _entry); \
_pce_prop = PCE_PROPERTY(_entry); \
if (_pce_prop && _pce_prop != prop) \
_cache->recycles++; \
PCE_OBJECT(_entry) = obj; \
PCE_PROPERTY(_entry) = prop; \
_cache->empty = JS_FALSE; \
_cache->fills++; \
PCE_STORE(_cache, _pce, _entry); \
JS_END_MACRO
#define PROPERTY_CACHE_TEST(cache, obj, id, prop) \
JS_BEGIN_MACRO \
uintN _hashIndex = (uintN)PROPERTY_CACHE_HASH(obj, id); \
JSPropertyCache *_cache = (cache); \
JSPropertyCacheEntry *_pce = &_cache->table[_hashIndex]; \
JSPropertyCacheEntry _entry; \
JSProperty *_pce_prop; \
PCE_LOAD(_cache, _pce, _entry); \
_pce_prop = PCE_PROPERTY(_entry); \
_cache->tests++; \
if (_pce_prop && \
(((jsword)_pce_prop & 1) \
? PROP_NOT_FOUND_ID(_pce_prop) \
: sym_id(((JSScopeProperty *)_pce_prop)->symbols)) == id && \
PCE_OBJECT(_entry) == obj) { \
prop = _pce_prop; \
} else { \
_cache->misses++; \
prop = NULL; \
} \
JS_END_MACRO
extern void
js_FlushPropertyCache(JSContext *cx);
extern void
js_FlushPropertyCacheByProp(JSContext *cx, JSProperty *prop);
extern jsval *
js_AllocStack(JSContext *cx, uintN nslots, void **markp);
extern void
js_FreeStack(JSContext *cx, void *mark);
extern JSBool
js_GetArgument(JSContext *cx, JSObject *obj, jsval id, jsval *vp);
extern JSBool
js_SetArgument(JSContext *cx, JSObject *obj, jsval id, jsval *vp);
extern JSBool
js_GetLocalVariable(JSContext *cx, JSObject *obj, jsval id, jsval *vp);
extern JSBool
js_SetLocalVariable(JSContext *cx, JSObject *obj, jsval id, jsval *vp);
extern JSBool
js_Invoke(JSContext *cx, uintN argc, JSBool constructing);
extern JSBool
js_CallFunctionValue(JSContext *cx, JSObject *obj, jsval fval,
uintN argc, jsval *argv, jsval *rval);
extern JSBool
js_Execute(JSContext *cx, JSObject *chain, JSScript *script, JSFunction *fun,
JSStackFrame *down, JSBool debugging, jsval *result);
extern JSBool
js_Interpret(JSContext *cx, jsval *result);
#endif /* jsinterp_h___ */

View File

@@ -1,782 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifdef JS_THREADSAFE
/*
* JS locking stubs.
*/
#include "jsstddef.h"
#include <stdlib.h>
#include "jspubtd.h"
#include "prthread.h"
#include "pratom.h"
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#include "jscntxt.h"
#include "jsscope.h"
#include "jspubtd.h"
#include "jslock.h"
static PRLock *_global_lock;
static void
js_LockGlobal()
{
PR_Lock(_global_lock);
}
static void
js_UnlockGlobal()
{
PR_Unlock(_global_lock);
}
#define ReadWord(W) (W)
#define AtomicAddBody(P,I)\
jsword n;\
do {\
n = ReadWord(*(P));\
} while (!js_CompareAndSwap(P, n, n + I));
#if defined(_WIN32) && !defined(NSPR_LOCK)
#pragma warning( disable : 4035 )
JS_INLINE int
js_CompareAndSwap(jsword *w, jsword ov, jsword nv)
{
__asm {
mov eax,ov
mov ecx, nv
mov ebx, w
lock cmpxchg [ebx], ecx
sete al
and eax,1h
}
}
#elif defined(SOLARIS) && !defined(NSPR_LOCK)
#ifndef ULTRA_SPARC
JS_INLINE jsword
js_ReadWord(jsword *p)
{
jsword n;
while ((n = *p) == -1)
;
return n;
}
#undef ReadWord
#define ReadWord(W) js_ReadWord(&(W))
static PRLock *_counter_lock;
#define UsingCounterLock 1
#undef AtomicAddBody
#define AtomicAddBody(P,I) \
PR_Lock(_counter_lock);\
*(P) += I;\
PR_Unlock(_counter_lock);
#endif /* !ULTRA_SPARC */
JS_INLINE int
js_CompareAndSwap(jsword *w, jsword ov, jsword nv)
{
#if defined(__GNUC__)
unsigned int res;
#ifndef ULTRA_SPARC
JS_ASSERT(nv >= 0);
asm volatile ("
stbar
swap [%1],%4
1: tst %4
bneg,a 1b
swap [%1],%4
cmp %2,%4
be,a 2f
swap [%1],%3
swap [%1],%4
ba 3f
mov 0,%0
2: mov 1,%0
3:"
: "=r" (res)
: "r" (w), "r" (ov), "r" (nv), "r" (-1));
#else /* ULTRA_SPARC */
JS_ASSERT(ov != nv);
asm volatile ("
stbar
cas [%1],%2,%3
cmp %2,%3
be,a 1f
mov 1,%0
mov 0,%0
1:"
: "=r" (res)
: "r" (w), "r" (ov), "r" (nv));
#endif /* ULTRA_SPARC */
return (int)res;
#else /* !__GNUC__ */
extern int compare_and_swap(jsword*,jsword,jsword);
#ifndef ULTRA_SPARC
JS_ASSERT(nv >= 0);
#else
JS_ASSERT(ov != nv);
#endif
return compare_and_swap(w,ov,nv);
#endif
}
#elif defined(AIX) && !defined(NSPR_LOCK)
#include <sys/atomic_op.h>
JS_INLINE int
js_CompareAndSwap(jsword *w, jsword ov, jsword nv)
{
return !_check_lock(w,ov,nv);
}
#else
static PRLock *_counter_lock;
#define UsingCounterLock 1
#undef AtomicAddBody
#define AtomicAddBody(P,I) \
PR_Lock(_counter_lock);\
*(P) += I;\
PR_Unlock(_counter_lock);
static PRLock *_compare_and_swap_lock;
#define UsingCompareAndSwapLock 1
JS_INLINE int
js_CompareAndSwap(jsword *w, jsword ov, jsword nv)
{
int res = 0;
PR_Lock(_compare_and_swap_lock);
if (*w == ov) {
*w = nv;
res = 1;
}
PR_Unlock(_compare_and_swap_lock);
return res;
}
#endif /* arch-tests */
JS_INLINE void
js_AtomicAdd(jsword *p, jsword i)
{
AtomicAddBody(p,i);
}
JS_INLINE jsword
js_AtomicSet(jsword *p, jsword n)
{
jsword o;
do {
o = ReadWord(*p);
} while (!js_CompareAndSwap(p,o,n));
return o;
}
jsword
js_CurrentThreadId()
{
return CurrentThreadId();
}
void
js_NewLock(JSThinLock *p)
{
#ifdef NSPR_LOCK
p->owner = 0;
p->fat = (JSFatLock*)JS_NEW_LOCK();
#else
memset(p, 0, sizeof(JSThinLock));
#endif
}
void
js_DestroyLock(JSThinLock *p)
{
#ifdef NSPR_LOCK
p->owner = 0xdeadbeef;
JS_DESTROY_LOCK(((JSLock*)p->fat));
#else
JS_ASSERT(p->owner == 0);
JS_ASSERT(p->fat == NULL);
#endif
}
static void js_Dequeue(JSThinLock *);
JS_INLINE jsval
js_GetSlotWhileLocked(JSContext *cx, JSObject *obj, uint32 slot)
{
jsval v;
#ifndef NSPR_LOCK
JSScope *scp = (JSScope *)obj->map;
JSThinLock *p = &scp->lock;
jsword me = cx->thread;
#endif
JS_ASSERT(obj->slots && slot < obj->map->freeslot);
#ifndef NSPR_LOCK
JS_ASSERT(me == CurrentThreadId());
if (js_CompareAndSwap(&p->owner, 0, me)) {
if (scp == (JSScope *)obj->map) {
v = obj->slots[slot];
if (!js_CompareAndSwap(&p->owner, me, 0)) {
scp->count = 1;
js_UnlockObj(cx,obj);
}
return v;
}
if (!js_CompareAndSwap(&p->owner, me, 0))
js_Dequeue(p);
}
else if (Thin_RemoveWait(ReadWord(p->owner)) == me) {
return obj->slots[slot];
}
#endif
js_LockObj(cx,obj);
v = obj->slots[slot];
js_UnlockObj(cx,obj);
return v;
}
JS_INLINE void
js_SetSlotWhileLocked(JSContext *cx, JSObject *obj, uint32 slot, jsval v)
{
#ifndef NSPR_LOCK
JSScope *scp = (JSScope *)obj->map;
JSThinLock *p = &scp->lock;
jsword me = cx->thread;
#endif
JS_ASSERT(obj->slots && slot < obj->map->freeslot);
#ifndef NSPR_LOCK
JS_ASSERT(me == CurrentThreadId());
if (js_CompareAndSwap(&p->owner, 0, me)) {
if (scp == (JSScope *)obj->map) {
obj->slots[slot] = v;
if (!js_CompareAndSwap(&p->owner, me, 0)) {
scp->count = 1;
js_UnlockObj(cx,obj);
}
return;
}
if (!js_CompareAndSwap(&p->owner, me, 0))
js_Dequeue(p);
}
else if (Thin_RemoveWait(ReadWord(p->owner)) == me) {
obj->slots[slot] = v;
return;
}
#endif
js_LockObj(cx,obj);
obj->slots[slot] = v;
js_UnlockObj(cx,obj);
}
static JSFatLock *
mallocFatlock()
{
JSFatLock *fl = (JSFatLock *)malloc(sizeof(JSFatLock)); /* for now */
JS_ASSERT(fl);
fl->susp = 0;
fl->next = NULL;
fl->prev = NULL;
fl->slock = PR_NewLock();
fl->svar = JS_NewCondVar(fl->slock);
return fl;
}
static void
freeFatlock(JSFatLock *fl)
{
PR_DestroyLock(fl->slock);
PR_DestroyCondVar(fl->svar);
free(fl);
}
static int
js_SuspendThread(JSThinLock *p)
{
JSFatLock *fl;
JSStatus stat;
while ((fl = (JSFatLock*)js_AtomicSet((jsword*)&p->fat,1)) == (JSFatLock*)1) /* busy wait */
PR_Sleep(JS_INTERVAL_NO_WAIT);
if (fl == NULL)
return 1;
PR_Lock(fl->slock);
js_AtomicSet((jsword*)&p->fat,(jsword)fl);
fl->susp++;
if (fl->susp < 1) {
PR_Unlock(fl->slock);
return 1;
}
stat = PR_WaitCondVar(fl->svar,JS_INTERVAL_NO_TIMEOUT);
if (stat == JS_FAILURE) {
fl->susp--;
return 0;
}
PR_Unlock(fl->slock);
return 1;
}
static void
js_ResumeThread(JSThinLock *p)
{
JSFatLock *fl;
JSStatus stat;
while ((fl = (JSFatLock*)js_AtomicSet((jsword*)&p->fat,1)) == (JSFatLock*)1)
PR_Sleep(JS_INTERVAL_NO_WAIT);
if (fl == NULL)
return;
PR_Lock(fl->slock);
js_AtomicSet((jsword*)&p->fat,(jsword)fl);
fl->susp--;
if (fl->susp < 0) {
PR_Unlock(fl->slock);
return;
}
stat = PR_NotifyCondVar(fl->svar);
JS_ASSERT(stat != JS_FAILURE);
PR_Unlock(fl->slock);
}
static JSFatLock *
listOfFatlocks(int l)
{
JSFatLock *m;
JSFatLock *m0;
int i;
JS_ASSERT(l>0);
m0 = m = mallocFatlock();
for (i=1; i<l; i++) {
m->next = mallocFatlock();
m = m->next;
}
return m0;
}
static void
deleteListOfFatlocks(JSFatLock *m)
{
JSFatLock *m0;
for (; m; m=m0) {
m0 = m->next;
freeFatlock(m);
}
}
static JSFatLockTable _fl_table;
JSFatLock *
allocateFatlock()
{
JSFatLock *m;
js_LockGlobal();
if (_fl_table.free == NULL) {
#ifdef DEBUG
printf("Ran out of fat locks!\n");
#endif
_fl_table.free = listOfFatlocks(10);
}
m = _fl_table.free;
_fl_table.free = m->next;
_fl_table.free->prev = NULL;
m->susp = 0;
m->next = _fl_table.taken;
m->prev = NULL;
if (_fl_table.taken != NULL)
_fl_table.taken->prev = m;
_fl_table.taken = m;
js_UnlockGlobal();
return m;
}
void
deallocateFatlock(JSFatLock *m)
{
if (m == NULL)
return;
js_LockGlobal();
if (m->prev != NULL)
m->prev->next = m->next;
if (m->next != NULL)
m->next->prev = m->prev;
if (m == _fl_table.taken)
_fl_table.taken = m->next;
m->next = _fl_table.free;
_fl_table.free = m;
js_UnlockGlobal();
}
JS_PUBLIC_API(int)
js_SetupLocks(int l)
{
if (l > 10000) /* l equals number of initially allocated fat locks */
#ifdef DEBUG
printf("Number %d very large in js_SetupLocks()!\n",l);
#endif
if (_global_lock)
return 1;
_global_lock = PR_NewLock();
JS_ASSERT(_global_lock);
#ifdef UsingCounterLock
_counter_lock = PR_NewLock();
JS_ASSERT(_counter_lock);
#endif
#ifdef UsingCompareAndSwapLock
_compare_and_swap_lock = PR_NewLock();
JS_ASSERT(_compare_and_swap_lock);
#endif
_fl_table.free = listOfFatlocks(l);
_fl_table.taken = NULL;
return 1;
}
JS_PUBLIC_API(void)
js_CleanupLocks()
{
if (_global_lock != NULL) {
deleteListOfFatlocks(_fl_table.free);
_fl_table.free = NULL;
deleteListOfFatlocks(_fl_table.taken);
_fl_table.taken = NULL;
PR_DestroyLock(_global_lock);
_global_lock = NULL;
#ifdef UsingCounterLock
PR_DestroyLock(_counter_lock);
_counter_lock = NULL;
#endif
#ifdef UsingCompareAndSwapLock
PR_DestroyLock(_compare_and_swap_lock);
_compare_and_swap_lock = NULL;
#endif
}
}
JS_PUBLIC_API(void)
js_InitContextForLocking(JSContext *cx)
{
cx->thread = CurrentThreadId();
JS_ASSERT(Thin_GetWait(cx->thread) == 0);
}
/*
It is important that emptyFatlock() clears p->fat in the empty case
while holding p->slock. This serializes the access of p->fat wrt
js_SuspendThread(), which also requires p->slock. There would
otherwise be a race condition as follows. Thread A is about to
clear p->fat, having woken up after being suspended in a situation
where no other thread has yet suspended on p. However, suppose
thread B is about to suspend on p, having just released the global
lock, and is currently calling js_SuspendThread(). In the unfortunate
case where A precedes B ever so slightly, A will think that it
should clear p->fat (being currently empty but not for long), at the
same time as B is about to suspend on p->fat. Now, A deallocates
p->fat while B is about to suspend on it. Thus, the suspension of B
is lost and B will not be properly activated.
Using p->slock as below (and correspondingly in js_SuspendThread()),
js_SuspendThread() will notice that p->fat is empty, and hence return
immediately.
*/
int
emptyFatlock(JSThinLock *p)
{
JSFatLock *fl;
int i;
PRLock* lck;
while ((fl = (JSFatLock*)js_AtomicSet((jsword*)&p->fat,1)) == (JSFatLock*)1)
PR_Sleep(JS_INTERVAL_NO_WAIT);
if (fl == NULL) {
js_AtomicSet((jsword*)&p->fat,(jsword)fl);
return 1;
}
lck = fl->slock;
PR_Lock(lck);
i = fl->susp;
if (i < 1) {
fl->susp = -1;
deallocateFatlock(fl);
fl = NULL;
}
js_AtomicSet((jsword*)&p->fat,(jsword)fl);
PR_Unlock(lck);
return i < 1;
}
/*
Fast locking and unlocking is implemented by delaying the
allocation of a system lock (fat lock) until contention. As long as
a locking thread A runs uncontended, the lock is represented solely
by storing A's identity in the object being locked.
If another thread B tries to lock the object currently locked by A,
B is enqueued into a fat lock structure (which might have to be
allocated and pointed to by the object), and suspended using NSPR
conditional variables (wait). A wait bit (Bacon bit) is set in the
lock word of the object, signalling to A that when releasing the
lock, B must be dequeued and notified.
The basic operation of the locking primitives (js_Lock(),
js_Unlock(), js_Enqueue(), and js_Dequeue()) is
compare-and-swap. Hence, when locking into p, if
compare-and-swap(p,NULL,me) succeeds this implies that p is
unlocked. Similarly, when unlocking p, if
compare-and-swap(p,me,NULL) succeeds this implies that p is
uncontended (no one is waiting because the wait bit is not set).
Furthermore, when enqueueing (after the compare-and-swap has failed
to lock the object), p->fat is used to serialize the different
accesses to the fat lock. The four function thus synchronized are
js_Enqueue, emptyFatLock, js_SuspendThread, and js_ResumeThread.
When dequeueing, the lock is released, and one of the threads
suspended on the lock is notified. If other threads still are
waiting, the wait bit is kept (in js_Enqueue), and if not, the fat
lock is deallocated (in emptyFatlock()).
p->fat is set to 1 by enqueue and emptyFatlock to signal that the pointer
is being accessed.
*/
static void
js_Enqueue(JSThinLock *p, jsword me)
{
jsword o, n;
while (1) {
o = ReadWord(p->owner);
n = Thin_SetWait(o);
if (o != 0 && js_CompareAndSwap(&p->owner,o,n)) {
JSFatLock* fl;
while ((fl = (JSFatLock*)js_AtomicSet((jsword*)&p->fat,1)) == (JSFatLock*)1)
PR_Sleep(JS_INTERVAL_NO_WAIT);
if (fl == NULL)
fl = allocateFatlock();
js_AtomicSet((jsword*)&p->fat,(jsword)fl);
js_SuspendThread(p);
if (emptyFatlock(p))
me = Thin_RemoveWait(me);
else
me = Thin_SetWait(me);
}
else if (js_CompareAndSwap(&p->owner,0,me)) {
return;
}
}
}
static void
js_Dequeue(JSThinLock *p)
{
int o = ReadWord(p->owner);
JS_ASSERT(Thin_GetWait(o));
if (!js_CompareAndSwap(&p->owner,o,0)) /* release it */
JS_ASSERT(0);
js_ResumeThread(p);
}
JS_INLINE void
js_Lock(JSThinLock *p, jsword me)
{
JS_ASSERT(me == CurrentThreadId());
if (js_CompareAndSwap(&p->owner, 0, me))
return;
if (Thin_RemoveWait(ReadWord(p->owner)) != me)
js_Enqueue(p, me);
#ifdef DEBUG
else
JS_ASSERT(0);
#endif
}
JS_INLINE void
js_Unlock(JSThinLock *p, jsword me)
{
JS_ASSERT(me == CurrentThreadId());
if (js_CompareAndSwap(&p->owner, me, 0))
return;
if (Thin_RemoveWait(ReadWord(p->owner)) == me)
js_Dequeue(p);
#ifdef DEBUG
else
JS_ASSERT(0);
#endif
}
void
js_LockRuntime(JSRuntime *rt)
{
jsword me = CurrentThreadId();
JSThinLock *p;
JS_ASSERT(Thin_RemoveWait(ReadWord(rt->rtLock.owner)) != me);
p = &rt->rtLock;
JS_LOCK0(p,me);
}
void
js_UnlockRuntime(JSRuntime *rt)
{
jsword me = CurrentThreadId();
JSThinLock *p;
JS_ASSERT(Thin_RemoveWait(ReadWord(rt->rtLock.owner)) == me);
p = &rt->rtLock;
JS_UNLOCK0(p,me);
}
JS_INLINE void
js_LockScope1(JSContext *cx, JSScope *scope, jsword me)
{
JSThinLock *p;
if (Thin_RemoveWait(ReadWord(scope->lock.owner)) == me) {
JS_ASSERT(scope->count > 0);
scope->count++;
} else {
p = &scope->lock;
JS_LOCK0(p,me);
JS_ASSERT(scope->count == 0);
scope->count = 1;
}
}
void
js_LockScope(JSContext *cx, JSScope *scope)
{
JS_ASSERT(cx->thread == CurrentThreadId());
js_LockScope1(cx,scope,cx->thread);
}
void
js_UnlockScope(JSContext *cx, JSScope *scope)
{
jsword me = cx->thread;
JSThinLock *p;
JS_ASSERT(scope->count > 0);
if (Thin_RemoveWait(ReadWord(scope->lock.owner)) != me) {
JS_ASSERT(0);
return;
}
if (--scope->count == 0) {
p = &scope->lock;
JS_UNLOCK0(p,me);
}
}
void
js_TransferScopeLock(JSContext *cx, JSScope *oldscope, JSScope *newscope)
{
jsword me;
JSThinLock *p;
JS_ASSERT(JS_IS_SCOPE_LOCKED(newscope));
/*
* If the last reference to oldscope went away, newscope needs no lock
* state update.
*/
if (!oldscope) {
return;
}
JS_ASSERT(JS_IS_SCOPE_LOCKED(oldscope));
/*
* Transfer oldscope's entry count to newscope, as it will be unlocked
* now via JS_UNLOCK_OBJ(cx,obj) calls made while we unwind the C stack
* from the current point (under js_GetMutableScope).
*/
newscope->count = oldscope->count;
/*
* Reset oldscope's lock state so that it is completely unlocked.
*/
oldscope->count = 0;
p = &oldscope->lock;
me = cx->thread;
JS_UNLOCK0(p,me);
}
void
js_LockObj(JSContext *cx, JSObject *obj)
{
JSScope *scope;
jsword me = cx->thread;
JS_ASSERT(me == CurrentThreadId());
for (;;) {
scope = (JSScope *) obj->map;
js_LockScope1(cx, scope, me);
/* If obj still has this scope, we're done. */
if (scope == (JSScope *) obj->map)
return;
/* Lost a race with a mutator; retry with obj's new scope. */
js_UnlockScope(cx, scope);
}
}
void
js_UnlockObj(JSContext *cx, JSObject *obj)
{
js_UnlockScope(cx, (JSScope *) obj->map);
}
#ifdef DEBUG
JSBool
js_IsRuntimeLocked(JSRuntime *rt)
{
return CurrentThreadId() == Thin_RemoveWait(ReadWord(rt->rtLock.owner));
}
JSBool
js_IsObjLocked(JSObject *obj)
{
JSObjectMap *map = obj->map;
return MAP_IS_NATIVE(map) && CurrentThreadId() == Thin_RemoveWait(ReadWord(((JSScope *)map)->lock.owner));
}
JSBool
js_IsScopeLocked(JSScope *scope)
{
return CurrentThreadId() == Thin_RemoveWait(ReadWord(scope->lock.owner));
}
#endif
#undef ReadWord
#endif /* JS_THREADSAFE */

View File

@@ -1,219 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jslock_h__
#define jslock_h__
#ifdef JS_THREADSAFE
#include "jstypes.h"
#include "prlock.h"
#include "prcvar.h"
#ifndef NSPR20
#include "jshash.h"
#else
/* Removed by JSIFY: #include "JShash.h"
*/
#include "jshash.h" /* Added by JSIFY */
#endif
#define Thin_GetWait(W) ((jsword)(W) & 0x1)
#define Thin_SetWait(W) ((jsword)(W) | 0x1)
#define Thin_RemoveWait(W) ((jsword)(W) & ~0x1)
typedef struct JSFatLock {
int susp;
PRLock* slock;
PRCondVar* svar;
struct JSFatLock *next;
struct JSFatLock *prev;
} JSFatLock;
typedef struct JSThinLock {
jsword owner;
JSFatLock *fat;
} JSThinLock;
typedef PRLock JSLock;
typedef struct JSFatLockTable {
JSFatLock *free;
JSFatLock *taken;
} JSFatLockTable;
#define JS_ATOMIC_ADDREF(p, i) js_AtomicAdd(p,i)
#define CurrentThreadId() (jsword)PR_GetCurrentThread()
#define JS_CurrentThreadId() js_CurrentThreadId()
#define JS_NEW_LOCK() PR_NewLock()
#define JS_DESTROY_LOCK(l) PR_DestroyLock(l)
#define JS_ACQUIRE_LOCK(l) PR_Lock(l)
#define JS_RELEASE_LOCK(l) PR_Unlock(l)
#define JS_LOCK0(P,M) js_Lock(P,M)
#define JS_UNLOCK0(P,M) js_Unlock(P,M)
#define JS_NEW_CONDVAR(l) JS_NewCondVar(l)
#define JS_DESTROY_CONDVAR(cv) PR_DestroyCondVar(cv)
#define JS_WAIT_CONDVAR(cv,to) PR_WaitCondVar(cv,to)
#define JS_NO_TIMEOUT JS_INTERVAL_NO_TIMEOUT
#define JS_NOTIFY_CONDVAR(cv) PR_NotifyCondVar(cv)
#define JS_NOTIFY_ALL_CONDVAR(cv) PR_NotifyAllCondVar(cv)
#ifdef DEBUG
#include "jsscope.h"
#define _SET_OBJ_INFO(obj,f,l) \
_SET_SCOPE_INFO(((JSScope*)obj->map),f,l)
#define _SET_SCOPE_INFO(scope,f,l) \
(JS_ASSERT(scope->count > 0 && scope->count <= 4), \
scope->file[scope->count-1] = f, \
scope->line[scope->count-1] = l)
#endif /* DEBUG */
#define JS_LOCK_RUNTIME(rt) js_LockRuntime(rt)
#define JS_UNLOCK_RUNTIME(rt) js_UnlockRuntime(rt)
#define JS_LOCK_OBJ(cx,obj) (js_LockObj(cx, obj), \
_SET_OBJ_INFO(obj,__FILE__,__LINE__))
#define JS_UNLOCK_OBJ(cx,obj) js_UnlockObj(cx, obj)
#define JS_LOCK_SCOPE(cx,scope) (js_LockScope(cx, scope), \
_SET_SCOPE_INFO(scope,__FILE__,__LINE__))
#define JS_UNLOCK_SCOPE(cx,scope) js_UnlockScope(cx, scope)
#define JS_TRANSFER_SCOPE_LOCK(cx, scope, newscope) js_TransferScopeLock(cx, scope, newscope)
extern jsword js_CurrentThreadId();
extern JS_INLINE void js_Lock(JSThinLock *, jsword);
extern JS_INLINE void js_Unlock(JSThinLock *, jsword);
extern int js_CompareAndSwap(jsword *, jsword, jsword);
extern void js_AtomicAdd(jsword*, jsword);
extern void js_LockRuntime(JSRuntime *rt);
extern void js_UnlockRuntime(JSRuntime *rt);
extern void js_LockObj(JSContext *cx, JSObject *obj);
extern void js_UnlockObj(JSContext *cx, JSObject *obj);
extern void js_LockScope(JSContext *cx, JSScope *scope);
extern void js_UnlockScope(JSContext *cx, JSScope *scope);
extern JS_PUBLIC_API(int) js_SetupLocks(int);
extern JS_PUBLIC_API(void) js_CleanupLocks();
extern JS_PUBLIC_API(void) js_InitContextForLocking(JSContext *);
extern void js_TransferScopeLock(JSContext *, JSScope *, JSScope *);
extern JS_PUBLIC_API(jsval) js_GetSlotWhileLocked(JSContext *, JSObject *, uint32);
extern JS_PUBLIC_API(void) js_SetSlotWhileLocked(JSContext *, JSObject *, uint32, jsval);
extern void js_NewLock(JSThinLock *);
extern void js_DestroyLock(JSThinLock *);
#ifdef DEBUG
#define JS_IS_RUNTIME_LOCKED(rt) js_IsRuntimeLocked(rt)
#define JS_IS_OBJ_LOCKED(obj) js_IsObjLocked(obj)
#define JS_IS_SCOPE_LOCKED(scope) js_IsScopeLocked(scope)
extern JSBool js_IsRuntimeLocked(JSRuntime *rt);
extern JSBool js_IsObjLocked(JSObject *obj);
extern JSBool js_IsScopeLocked(JSScope *scope);
#else
#define JS_IS_RUNTIME_LOCKED(rt) 0
#define JS_IS_OBJ_LOCKED(obj) 1
#define JS_IS_SCOPE_LOCKED(scope) 1
#endif /* DEBUG */
#define JS_LOCK_OBJ_VOID(cx, obj, e) \
JS_BEGIN_MACRO \
js_LockObj(cx, obj); \
e; \
js_UnlockObj(cx, obj); \
JS_END_MACRO
#define JS_LOCK_VOID(cx, e) \
JS_BEGIN_MACRO \
JSRuntime *_rt = (cx)->runtime; \
JS_LOCK_RUNTIME_VOID(_rt, e); \
JS_END_MACRO
#if defined(JS_ONLY_NSPR_LOCKS) || !(defined(_WIN32) || defined(SOLARIS) || defined(AIX))
#undef JS_LOCK0
#undef JS_UNLOCK0
#define JS_LOCK0(P,M) JS_ACQUIRE_LOCK(((JSLock*)(P)->fat)); (P)->owner = (M)
#define JS_UNLOCK0(P,M) (P)->owner = 0; JS_RELEASE_LOCK(((JSLock*)(P)->fat))
#define NSPR_LOCK 1
#endif /* arch-tests */
#else /* !JS_THREADSAFE */
#define JS_ATOMIC_ADDREF(p,i) (*(p) += i)
#define JS_CurrentThreadId() 0
#define JS_NEW_LOCK() NULL
#define JS_DESTROY_LOCK(l) ((void)0)
#define JS_ACQUIRE_LOCK(l) ((void)0)
#define JS_RELEASE_LOCK(l) ((void)0)
#define JS_LOCK0(P,M) ((void)0)
#define JS_UNLOCK0(P,M) ((void)0)
#define JS_NEW_CONDVAR(l) NULL
#define JS_DESTROY_CONDVAR(cv) ((void)0)
#define JS_WAIT_CONDVAR(cv,to) ((void)0)
#define JS_NOTIFY_CONDVAR(cv) ((void)0)
#define JS_NOTIFY_ALL_CONDVAR(cv) ((void)0)
#define JS_LOCK_RUNTIME(rt) ((void)0)
#define JS_UNLOCK_RUNTIME(rt) ((void)0)
#define JS_LOCK_OBJ(cx,obj) ((void)0)
#define JS_UNLOCK_OBJ(cx,obj) ((void)0)
#define JS_LOCK_OBJ_VOID(cx,obj,e) (e)
#define JS_LOCK_SCOPE(cx,scope) ((void)0)
#define JS_UNLOCK_SCOPE(cx,scope) ((void)0)
#define JS_TRANSFER_SCOPE_LOCK(c,o,n) ((void)0)
#define JS_IS_RUNTIME_LOCKED(rt) 1
#define JS_IS_OBJ_LOCKED(obj) 1
#define JS_IS_SCOPE_LOCKED(scope) 1
#define JS_LOCK_VOID(cx, e) JS_LOCK_RUNTIME_VOID((cx)->runtime, e)
#endif /* !JS_THREADSAFE */
#define JS_LOCK_RUNTIME_VOID(rt,e) \
JS_BEGIN_MACRO \
JS_LOCK_RUNTIME(rt); \
e; \
JS_UNLOCK_RUNTIME(rt); \
JS_END_MACRO
#define JS_LOCK_GC(rt) JS_ACQUIRE_LOCK((rt)->gcLock)
#define JS_UNLOCK_GC(rt) JS_RELEASE_LOCK((rt)->gcLock)
#define JS_LOCK_GC_VOID(rt,e) (JS_LOCK_GC(rt), (e), JS_UNLOCK_GC(rt))
#define JS_AWAIT_GC_DONE(rt) JS_WAIT_CONDVAR((rt)->gcDone, JS_NO_TIMEOUT)
#define JS_NOTIFY_GC_DONE(rt) JS_NOTIFY_ALL_CONDVAR((rt)->gcDone)
#define JS_AWAIT_REQUEST_DONE(rt) JS_WAIT_CONDVAR((rt)->requestDone, \
JS_NO_TIMEOUT)
#define JS_NOTIFY_REQUEST_DONE(rt) JS_NOTIFY_CONDVAR((rt)->requestDone)
#define JS_LOCK(P,CX) JS_LOCK0(P,(CX)->thread)
#define JS_UNLOCK(P,CX) JS_UNLOCK0(P,(CX)->thread)
#ifndef _SET_OBJ_INFO
#define _SET_OBJ_INFO(obj,f,l) ((void)0)
#endif
#ifndef _SET_SCOPE_INFO
#define _SET_SCOPE_INFO(scope,f,l) ((void)0)
#endif
#endif /* jslock_h___ */

View File

@@ -1,233 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jslog_h___
#define jslog_h___
#include "jstypes.h"
JS_BEGIN_EXTERN_C
/*
/* Removed by JSIFY: ** prlog.h -- Declare interfaces to NSPR's Logging service */
#include "jsutil.h" /* Added by JSIFY */
**
** NSPR provides a logging service that is used by NSPR itself and is
** available to client programs.
**
** To use the service from a client program, you should create a
** PRLogModuleInfo structure by calling JS_NewLogModule(). After
** creating the LogModule, you can write to the log using the JS_LOG()
** macro.
**
** Initialization of the log service is handled by NSPR initialization.
**
** At execution time, you must enable the log service. To enable the
** log service, set the environment variable: NSPR_LOG_MODULES
** variable.
**
** NSPR_LOG_MODULES variable has the form:
**
** <moduleName>:<value>[, <moduleName>:<value>]*
**
** Where:
** <moduleName> is the name passed to JS_NewLogModule().
** <value> is a numeric constant, e.g. 5. This value is the maximum
** value of a log event, enumerated by PRLogModuleLevel, that you want
** written to the log.
**
** For example: to record all events of greater value than or equal to
** JS_LOG_ERROR for a LogModule names "gizmo", say:
**
** set NSPR_LOG_MODULES=gizmo:2
**
** Note that you must specify the numeric value of JS_LOG_ERROR.
**
** Special LogModule names are provided for controlling NSPR's log
** service at execution time. These controls should be set in the
** NSPR_LOG_MODULES environment variable at execution time to affect
** NSPR's log service for your application.
**
** The special LogModule "all" enables all LogModules. To enable all
** LogModule calls to JS_LOG(), say:
**
** set NSPR_LOG_MODULES=all:5
**
** The special LogModule name "sync" tells the NSPR log service to do
** unbuffered logging.
**
** The special LogModule name "buffsize:<size>" tells NSPR to set the
** log buffer to <size>.
**
** The environment variable NSPR_LOG_FILE specifies the log file to use
** unless the default of "stderr" is acceptable.
**
** To put log messages in your programs, use the JS_LOG macro:
**
** JS_LOG(<module>, <level>, (<printfString>, <args>*));
**
** Where <module> is the address of a PRLogModuleInfo structure, and
** <level> is one of the levels defined by the enumeration:
** PRLogModuleLevel. <args> is a printf() style of argument list. That
** is: (fmtstring, ...).
**
** Example:
**
** main() {
** JSIntn one = 1;
** PRLogModuleInfo * myLm = JS_NewLogModule("gizmo");
** JS_LOG( myLm, JS_LOG_ALWAYS, ("Log this! %d\n", one));
** return;
** }
**
** Note the use of printf() style arguments as the third agrument(s) to
** JS_LOG().
**
** After compiling and linking you application, set the environment:
**
** SET NSPR_LOGMODULES=gizmo:5
** SET NSPR_LOG_FILE=logfile.txt
**
** When you execute your application, the string "Log this! 1" will be
** written to the file "logfile.txt".
**
** Note to NSPR engineers: a number of PRLogModuleInfo structures are
** defined and initialized in prinit.c. See this module for ideas on
** what to log where.
**
*/
typedef enum PRLogModuleLevel {
JS_LOG_NONE = 0, /* nothing */
JS_LOG_ALWAYS = 1, /* always printed */
JS_LOG_ERROR = 2, /* error messages */
JS_LOG_WARNING = 3, /* warning messages */
JS_LOG_DEBUG = 4, /* debug messages */
JS_LOG_NOTICE = JS_LOG_DEBUG, /* notice messages */
JS_LOG_WARN = JS_LOG_WARNING, /* warning messages */
JS_LOG_MIN = JS_LOG_DEBUG, /* minimal debugging messages */
JS_LOG_MAX = JS_LOG_DEBUG /* maximal debugging messages */
} PRLogModuleLevel;
/*
** One of these structures is created for each module that uses logging.
** "name" is the name of the module
** "level" is the debugging level selected for that module
*/
typedef struct PRLogModuleInfo {
const char *name;
PRLogModuleLevel level;
struct PRLogModuleInfo *next;
} PRLogModuleInfo;
/*
** Create a new log module.
*/
EXTERN(PRLogModuleInfo*) JS_NewLogModule(const char *name);
/*
** Set the file to use for logging. Returns JS_FALSE if the file cannot
** be created
*/
EXTERN(JSBool) JS_SetLogFile(const char *name);
/*
** Set the size of the logging buffer. If "buffer_size" is zero then the
** logging becomes "synchronous" (or unbuffered).
*/
EXTERN(void) JS_SetLogBuffering(JSIntn buffer_size);
/*
** Print a string to the log. "fmt" is a PR_snprintf format type. All
** messages printed to the log are preceeded by the name of the thread
** and a time stamp. Also, the routine provides a missing newline if one
** is not provided.
*/
EXTERN(void) JS_LogPrint(const char *fmt, ...);
/*
** Flush the log to its file.
*/
EXTERN(void) JS_LogFlush(void);
/*
** Windoze 16 can't support a large static string space for all of the
** various debugging strings so logging is not enabled for it.
*/
#if (defined(DEBUG) || defined(FORCE_PR_LOG)) && !defined(WIN16)
#define JS_LOGGING 1
#define JS_LOG_TEST(_module,_level) \
((_module)->level >= (_level))
/*
** Log something.
** "module" is the address of a PRLogModuleInfo structure
** "level" is the desired logging level
** "args" is a variable length list of arguments to print, in the following
** format: ("printf style format string", ...)
*/
#define JS_LOG(_module,_level,_args) \
JS_BEGIN_MACRO \
if (JS_LOG_TEST(_module,_level)) { \
JS_LogPrint _args; \
} \
JS_END_MACRO
#else /* (defined(DEBUG) || defined(FORCE_PR_LOG)) && !defined(WIN16) */
#undef JS_LOGGING
#define JS_LOG_TEST(module,level) 0
#define JS_LOG(module,level,args)
#endif /* (defined(DEBUG) || defined(FORCE_PR_LOG)) && !defined(WIN16) */
#ifndef NO_NSPR_10_SUPPORT
#ifdef JS_LOGGING
#define JS_LOG_BEGIN JS_LOG
#define JS_LOG_END JS_LOG
#define JS_LOG_DEFINE JS_NewLogModule
#else
#define JS_LOG_BEGIN(module,level,args)
#define JS_LOG_END(module,level,args)
#define JS_LOG_DEFINE(_name) NULL
#endif /* JS_LOGGING */
#endif /* NO_NSPR_10_SUPPORT */
#ifdef DEBUG
EXTERN(void) JS_Assert(const char *s, const char *file, JSIntn ln);
#define JS_ASSERT(_expr) \
((_expr)?((void)0):JS_Assert(# _expr,__FILE__,__LINE__))
#define JS_NOT_REACHED(_reasonStr) \
JS_Assert(_reasonStr,__FILE__,__LINE__)
#else
#define JS_ASSERT(expr) ((void) 0)
#define JS_NOT_REACHED(reasonStr)
#endif /* defined(DEBUG) */
JS_END_EXTERN_C
#endif /* jslog_h___ */

View File

@@ -1,62 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "jsbit.h"
/*
** Compute the log of the least power of 2 greater than or equal to n
*/
IMPLEMENT(JSIntn) JS_CeilingLog2(JSUint32 n)
{
JSIntn log2 = 0;
if (n & (n-1))
log2++;
if (n >> 16)
log2 += 16, n >>= 16;
if (n >> 8)
log2 += 8, n >>= 8;
if (n >> 4)
log2 += 4, n >>= 4;
if (n >> 2)
log2 += 2, n >>= 2;
if (n >> 1)
log2++;
return log2;
}
/*
** Compute the log of the greatest power of 2 less than or equal to n.
** This really just finds the highest set bit in the word.
*/
IMPLEMENT(JSIntn) JS_FloorLog2(JSUint32 n)
{
JSIntn log2 = 0;
if (n >> 16)
log2 += 16, n >>= 16;
if (n >> 8)
log2 += 8, n >>= 8;
if (n >> 4)
log2 += 4, n >>= 4;
if (n >> 2)
log2 += 2, n >>= 2;
if (n >> 1)
log2++;
return log2;
}

View File

@@ -1,260 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "jstypes.h"
#include "jslong.h"
static JSInt64 ll_zero = JSLL_INIT( 0x00000000,0x00000000 );
static JSInt64 ll_maxint = JSLL_INIT( 0x7fffffff, 0xffffffff );
static JSInt64 ll_minint = JSLL_INIT( 0x80000000, 0x00000000 );
#ifdef HAVE_WATCOM_BUG_2
JSInt64 __pascal __loadds __export
JSLL_Zero(void) { return ll_zero; }
JSInt64 __pascal __loadds __export
JSLL_MaxInt(void) { return ll_maxint; }
JSInt64 __pascal __loadds __export
JSLL_MinInt(void) { return ll_minint; }
#else
IMPLEMENT(JSInt64) JSLL_Zero(void) { return ll_zero; }
IMPLEMENT(JSInt64) JSLL_MaxInt(void) { return ll_maxint; }
IMPLEMENT(JSInt64) JSLL_MinInt(void) { return ll_minint; }
#endif
#ifndef HAVE_LONG_LONG
/*
** Divide 64-bit a by 32-bit b, which must be normalized so its high bit is 1.
*/
static void norm_udivmod32(JSUint32 *qp, JSUint32 *rp, JSUint64 a, JSUint32 b)
{
JSUint32 d1, d0, q1, q0;
JSUint32 r1, r0, m;
d1 = _hi16(b);
d0 = _lo16(b);
r1 = a.hi % d1;
q1 = a.hi / d1;
m = q1 * d0;
r1 = (r1 << 16) | _hi16(a.lo);
if (r1 < m) {
q1--, r1 += b;
if (r1 >= b /* i.e., we didn't get a carry when adding to r1 */
&& r1 < m) {
q1--, r1 += b;
}
}
r1 -= m;
r0 = r1 % d1;
q0 = r1 / d1;
m = q0 * d0;
r0 = (r0 << 16) | _lo16(a.lo);
if (r0 < m) {
q0--, r0 += b;
if (r0 >= b
&& r0 < m) {
q0--, r0 += b;
}
}
*qp = (q1 << 16) | q0;
*rp = r0 - m;
}
static JSUint32 CountLeadingZeros(JSUint32 a)
{
JSUint32 t;
JSUint32 r = 32;
if ((t = a >> 16) != 0)
r -= 16, a = t;
if ((t = a >> 8) != 0)
r -= 8, a = t;
if ((t = a >> 4) != 0)
r -= 4, a = t;
if ((t = a >> 2) != 0)
r -= 2, a = t;
if ((t = a >> 1) != 0)
r -= 1, a = t;
if (a & 1)
r--;
return r;
}
IMPLEMENT(void) ll_udivmod(JSUint64 *qp, JSUint64 *rp, JSUint64 a, JSUint64 b)
{
JSUint32 n0, n1, n2;
JSUint32 q0, q1;
JSUint32 rsh, lsh;
n0 = a.lo;
n1 = a.hi;
if (b.hi == 0) {
if (b.lo > n1) {
/* (0 q0) = (n1 n0) / (0 D0) */
lsh = CountLeadingZeros(b.lo);
if (lsh) {
/*
* Normalize, i.e. make the most significant bit of the
* denominator be set.
*/
b.lo = b.lo << lsh;
n1 = (n1 << lsh) | (n0 >> (32 - lsh));
n0 = n0 << lsh;
}
a.lo = n0, a.hi = n1;
norm_udivmod32(&q0, &n0, a, b.lo);
q1 = 0;
/* remainder is in n0 >> lsh */
} else {
/* (q1 q0) = (n1 n0) / (0 d0) */
if (b.lo == 0) /* user wants to divide by zero! */
b.lo = 1 / b.lo; /* so go ahead and crash */
lsh = CountLeadingZeros(b.lo);
if (lsh == 0) {
/*
* From (n1 >= b.lo)
* && (the most significant bit of b.lo is set),
* conclude that
* (the most significant bit of n1 is set)
* && (the leading quotient digit q1 = 1).
*
* This special case is necessary, not an optimization
* (Shifts counts of 32 are undefined).
*/
n1 -= b.lo;
q1 = 1;
} else {
/*
* Normalize.
*/
rsh = 32 - lsh;
b.lo = b.lo << lsh;
n2 = n1 >> rsh;
n1 = (n1 << lsh) | (n0 >> rsh);
n0 = n0 << lsh;
a.lo = n1, a.hi = n2;
norm_udivmod32(&q1, &n1, a, b.lo);
}
/* n1 != b.lo... */
a.lo = n0, a.hi = n1;
norm_udivmod32(&q0, &n0, a, b.lo);
/* remainder in n0 >> lsh */
}
if (rp) {
rp->lo = n0 >> lsh;
rp->hi = 0;
}
} else {
if (b.hi > n1) {
/* (0 0) = (n1 n0) / (D1 d0) */
q0 = 0;
q1 = 0;
/* remainder in (n1 n0) */
if (rp) {
rp->lo = n0;
rp->hi = n1;
}
} else {
/* (0 q0) = (n1 n0) / (d1 d0) */
lsh = CountLeadingZeros(b.hi);
if (lsh == 0) {
/*
* From (n1 >= b.hi)
* && (the most significant bit of b.hi is set),
* conclude that
* (the most significant bit of n1 is set)
* && (the quotient digit q0 = 0 or 1).
*
* This special case is necessary, not an optimization.
*/
/*
* The condition on the next line takes advantage of that
* n1 >= b.hi (true due to control flow).
*/
if (n1 > b.hi || n0 >= b.lo) {
q0 = 1;
a.lo = n0, a.hi = n1;
JSLL_SUB(a, a, b);
} else {
q0 = 0;
}
q1 = 0;
if (rp) {
rp->lo = n0;
rp->hi = n1;
}
} else {
JSInt64 m;
/*
* Normalize.
*/
rsh = 32 - lsh;
b.hi = (b.hi << lsh) | (b.lo >> rsh);
b.lo = b.lo << lsh;
n2 = n1 >> rsh;
n1 = (n1 << lsh) | (n0 >> rsh);
n0 = n0 << lsh;
a.lo = n1, a.hi = n2;
norm_udivmod32(&q0, &n1, a, b.hi);
JSLL_MUL32(m, q0, b.lo);
if ((m.hi > n1) || ((m.hi == n1) && (m.lo > n0))) {
q0--;
JSLL_SUB(m, m, b);
}
q1 = 0;
/* Remainder is ((n1 n0) - (m1 m0)) >> lsh */
if (rp) {
a.lo = n0, a.hi = n1;
JSLL_SUB(a, a, m);
rp->lo = (a.hi << rsh) | (a.lo >> lsh);
rp->hi = a.hi >> lsh;
}
}
}
}
if (qp) {
qp->lo = q0;
qp->hi = q1;
}
}
#endif /* !HAVE_LONG_LONG */

View File

@@ -1,409 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
** File: jslong.h
** Description: Portable access to 64 bit numerics
**
** Long-long (64-bit signed integer type) support. Some C compilers
** don't support 64 bit integers yet, so we use these macros to
** support both machines that do and don't.
**/
#ifndef jslong_h___
#define jslong_h___
#include "jstypes.h"
JS_BEGIN_EXTERN_C
/***********************************************************************
** DEFINES: JSLL_MaxInt
** JSLL_MinInt
** JSLL_Zero
** DESCRIPTION:
** Various interesting constants and static variable
** initializer
***********************************************************************/
#ifdef HAVE_WATCOM_BUG_2
JSInt64 __pascal __loadds __export
JSLL_MaxInt(void);
JSInt64 __pascal __loadds __export
JSLL_MinInt(void);
JSInt64 __pascal __loadds __export
JSLL_Zero(void);
#else
EXTERN(JSInt64) JSLL_MaxInt(void);
EXTERN(JSInt64) JSLL_MinInt(void);
EXTERN(JSInt64) JSLL_Zero(void);
#endif
#define JSLL_MAXINT JSLL_MaxInt()
#define JSLL_MININT JSLL_MinInt()
#define JSLL_ZERO JSLL_Zero()
#ifdef HAVE_LONG_LONG
#if JS_BYTES_PER_LONG == 8
#define JSLL_INIT(hi, lo) ((hi ## L << 32) + lo ## L)
#elif defined(WIN32) || defined(WIN16)
#define JSLL_INIT(hi, lo) ((hi ## i64 << 32) + lo ## i64)
#else
#define JSLL_INIT(hi, lo) ((hi ## LL << 32) + lo ## LL)
#endif
/***********************************************************************
** MACROS: JSLL_*
** DESCRIPTION:
** The following macros define portable access to the 64 bit
** math facilities.
**
***********************************************************************/
/***********************************************************************
** MACROS: JSLL_<relational operators>
**
** JSLL_IS_ZERO Test for zero
** JSLL_EQ Test for equality
** JSLL_NE Test for inequality
** JSLL_GE_ZERO Test for zero or positive
** JSLL_CMP Compare two values
***********************************************************************/
#define JSLL_IS_ZERO(a) ((a) == 0)
#define JSLL_EQ(a, b) ((a) == (b))
#define JSLL_NE(a, b) ((a) != (b))
#define JSLL_GE_ZERO(a) ((a) >= 0)
#define JSLL_CMP(a, op, b) ((JSInt64)(a) op (JSInt64)(b))
#define JSLL_UCMP(a, op, b) ((JSUint64)(a) op (JSUint64)(b))
/***********************************************************************
** MACROS: JSLL_<logical operators>
**
** JSLL_AND Logical and
** JSLL_OR Logical or
** JSLL_XOR Logical exclusion
** JSLL_OR2 A disgusting deviation
** JSLL_NOT Negation (one's compliment)
***********************************************************************/
#define JSLL_AND(r, a, b) ((r) = (a) & (b))
#define JSLL_OR(r, a, b) ((r) = (a) | (b))
#define JSLL_XOR(r, a, b) ((r) = (a) ^ (b))
#define JSLL_OR2(r, a) ((r) = (r) | (a))
#define JSLL_NOT(r, a) ((r) = ~(a))
/***********************************************************************
** MACROS: JSLL_<mathematical operators>
**
** JSLL_NEG Negation (two's compliment)
** JSLL_ADD Summation (two's compliment)
** JSLL_SUB Difference (two's compliment)
***********************************************************************/
#define JSLL_NEG(r, a) ((r) = -(a))
#define JSLL_ADD(r, a, b) ((r) = (a) + (b))
#define JSLL_SUB(r, a, b) ((r) = (a) - (b))
/***********************************************************************
** MACROS: JSLL_<mathematical operators>
**
** JSLL_MUL Product (two's compliment)
** JSLL_DIV Quotient (two's compliment)
** JSLL_MOD Modulus (two's compliment)
***********************************************************************/
#define JSLL_MUL(r, a, b) ((r) = (a) * (b))
#define JSLL_DIV(r, a, b) ((r) = (a) / (b))
#define JSLL_MOD(r, a, b) ((r) = (a) % (b))
/***********************************************************************
** MACROS: JSLL_<shifting operators>
**
** JSLL_SHL Shift left [0..64] bits
** JSLL_SHR Shift right [0..64] bits with sign extension
** JSLL_USHR Unsigned shift right [0..64] bits
** JSLL_ISHL Signed shift left [0..64] bits
***********************************************************************/
#define JSLL_SHL(r, a, b) ((r) = (JSInt64)(a) << (b))
#define JSLL_SHR(r, a, b) ((r) = (JSInt64)(a) >> (b))
#define JSLL_USHR(r, a, b) ((r) = (JSUint64)(a) >> (b))
#define JSLL_ISHL(r, a, b) ((r) = (JSInt64)(a) << (b))
/***********************************************************************
** MACROS: JSLL_<conversion operators>
**
** JSLL_L2I Convert to signed 32 bit
** JSLL_L2UI Convert to unsigned 32 bit
** JSLL_L2F Convert to floating point
** JSLL_L2D Convert to floating point
** JSLL_I2L Convert signed to 64 bit
** JSLL_UI2L Convert unsigned to 64 bit
** JSLL_F2L Convert float to 64 bit
** JSLL_D2L Convert float to 64 bit
***********************************************************************/
#define JSLL_L2I(i, l) ((i) = (JSInt32)(l))
#define JSLL_L2UI(ui, l) ((ui) = (JSUint32)(l))
#define JSLL_L2F(f, l) ((f) = (JSFloat64)(l))
#define JSLL_L2D(d, l) ((d) = (JSFloat64)(l))
#define JSLL_I2L(l, i) ((l) = (JSInt64)(i))
#define JSLL_UI2L(l, ui) ((l) = (JSInt64)(ui))
#define JSLL_F2L(l, f) ((l) = (JSInt64)(f))
#define JSLL_D2L(l, d) ((l) = (JSInt64)(d))
/***********************************************************************
** MACROS: JSLL_UDIVMOD
** DESCRIPTION:
** Produce both a quotient and a remainder given an unsigned
** INPUTS: JSUint64 a: The dividend of the operation
** JSUint64 b: The quotient of the operation
** OUTPUTS: JSUint64 *qp: pointer to quotient
** JSUint64 *rp: pointer to remainder
***********************************************************************/
#define JSLL_UDIVMOD(qp, rp, a, b) \
(*(qp) = ((JSUint64)(a) / (b)), \
*(rp) = ((JSUint64)(a) % (b)))
#else /* !HAVE_LONG_LONG */
#ifdef IS_LITTLE_ENDIAN
#define JSLL_INIT(hi, lo) {JS_INT32(lo), JS_INT32(hi)}
#else
#define JSLL_INIT(hi, lo) {JS_INT32(hi), JS_INT32(lo)}
#endif
#define JSLL_IS_ZERO(a) (((a).hi == 0) && ((a).lo == 0))
#define JSLL_EQ(a, b) (((a).hi == (b).hi) && ((a).lo == (b).lo))
#define JSLL_NE(a, b) (((a).hi != (b).hi) || ((a).lo != (b).lo))
#define JSLL_GE_ZERO(a) (((a).hi >> 31) == 0)
#define JSLL_CMP(a, op, b) (((JSInt32)(a).hi op (JSInt32)(b).hi) || \
(((a).hi == (b).hi) && ((a).lo op (b).lo)))
#define JSLL_UCMP(a, op, b) (((a).hi op (b).hi) || \
(((a).hi == (b).hi) && ((a).lo op (b).lo)))
#define JSLL_AND(r, a, b) ((r).lo = (a).lo & (b).lo, \
(r).hi = (a).hi & (b).hi)
#define JSLL_OR(r, a, b) ((r).lo = (a).lo | (b).lo, \
(r).hi = (a).hi | (b).hi)
#define JSLL_XOR(r, a, b) ((r).lo = (a).lo ^ (b).lo, \
(r).hi = (a).hi ^ (b).hi)
#define JSLL_OR2(r, a) ((r).lo = (r).lo | (a).lo, \
(r).hi = (r).hi | (a).hi)
#define JSLL_NOT(r, a) ((r).lo = ~(a).lo, \
(r).hi = ~(a).hi)
#define JSLL_NEG(r, a) ((r).lo = -(JSInt32)(a).lo, \
(r).hi = -(JSInt32)(a).hi - ((r).lo != 0))
#define JSLL_ADD(r, a, b) { \
JSInt64 _a, _b; \
_a = a; _b = b; \
(r).lo = _a.lo + _b.lo; \
(r).hi = _a.hi + _b.hi + ((r).lo < _b.lo); \
}
#define JSLL_SUB(r, a, b) { \
JSInt64 _a, _b; \
_a = a; _b = b; \
(r).lo = _a.lo - _b.lo; \
(r).hi = _a.hi - _b.hi - (_a.lo < _b.lo); \
}
#define JSLL_MUL(r, a, b) { \
JSInt64 _a, _b; \
_a = a; _b = b; \
JSLL_MUL32(r, _a.lo, _b.lo); \
(r).hi += _a.hi * _b.lo + _a.lo * _b.hi; \
}
#define _lo16(a) ((a) & JS_BITMASK(16))
#define _hi16(a) ((a) >> 16)
#define JSLL_MUL32(r, a, b) { \
JSUint32 _a1, _a0, _b1, _b0, _y0, _y1, _y2, _y3; \
_a1 = _hi16(a), _a0 = _lo16(a); \
_b1 = _hi16(b), _b0 = _lo16(b); \
_y0 = _a0 * _b0; \
_y1 = _a0 * _b1; \
_y2 = _a1 * _b0; \
_y3 = _a1 * _b1; \
_y1 += _hi16(_y0); /* can't carry */ \
_y1 += _y2; /* might carry */ \
if (_y1 < _y2) \
_y3 += (JSUint32)(JS_BIT(16)); /* propagate */ \
(r).lo = (_lo16(_y1) << 16) + _lo16(_y0); \
(r).hi = _y3 + _hi16(_y1); \
}
#define JSLL_UDIVMOD(qp, rp, a, b) ll_udivmod(qp, rp, a, b)
EXTERN(void) ll_udivmod(JSUint64 *qp, JSUint64 *rp, JSUint64 a, JSUint64 b);
#define JSLL_DIV(r, a, b) { \
JSInt64 _a, _b; \
JSUint32 _negative = (JSInt32)(a).hi < 0; \
if (_negative) { \
JSLL_NEG(_a, a); \
} else { \
_a = a; \
} \
if ((JSInt32)(b).hi < 0) { \
_negative ^= 1; \
JSLL_NEG(_b, b); \
} else { \
_b = b; \
} \
JSLL_UDIVMOD(&(r), 0, _a, _b); \
if (_negative) \
JSLL_NEG(r, r); \
}
#define JSLL_MOD(r, a, b) { \
JSInt64 _a, _b; \
JSUint32 _negative = (JSInt32)(a).hi < 0; \
if (_negative) { \
JSLL_NEG(_a, a); \
} else { \
_a = a; \
} \
if ((JSInt32)(b).hi < 0) { \
JSLL_NEG(_b, b); \
} else { \
_b = b; \
} \
JSLL_UDIVMOD(0, &(r), _a, _b); \
if (_negative) \
JSLL_NEG(r, r); \
}
#define JSLL_SHL(r, a, b) { \
if (b) { \
JSInt64 _a; \
_a = a; \
if ((b) < 32) { \
(r).lo = _a.lo << ((b) & 31); \
(r).hi = (_a.hi << ((b) & 31)) | (_a.lo >> (32 - (b))); \
} else { \
(r).lo = 0; \
(r).hi = _a.lo << ((b) & 31); \
} \
} else { \
(r) = (a); \
} \
}
/* a is an JSInt32, b is JSInt32, r is JSInt64 */
#define JSLL_ISHL(r, a, b) { \
if (b) { \
JSInt64 _a; \
_a.lo = (a); \
_a.hi = 0; \
if ((b) < 32) { \
(r).lo = (a) << ((b) & 31); \
(r).hi = ((a) >> (32 - (b))); \
} else { \
(r).lo = 0; \
(r).hi = (a) << ((b) & 31); \
} \
} else { \
(r).lo = (a); \
(r).hi = 0; \
} \
}
#define JSLL_SHR(r, a, b) { \
if (b) { \
JSInt64 _a; \
_a = a; \
if ((b) < 32) { \
(r).lo = (_a.hi << (32 - (b))) | (_a.lo >> ((b) & 31)); \
(r).hi = (JSInt32)_a.hi >> ((b) & 31); \
} else { \
(r).lo = (JSInt32)_a.hi >> ((b) & 31); \
(r).hi = (JSInt32)_a.hi >> 31; \
} \
} else { \
(r) = (a); \
} \
}
#define JSLL_USHR(r, a, b) { \
if (b) { \
JSInt64 _a; \
_a = a; \
if ((b) < 32) { \
(r).lo = (_a.hi << (32 - (b))) | (_a.lo >> ((b) & 31)); \
(r).hi = _a.hi >> ((b) & 31); \
} else { \
(r).lo = _a.hi >> ((b) & 31); \
(r).hi = 0; \
} \
} else { \
(r) = (a); \
} \
}
#define JSLL_L2I(i, l) ((i) = (l).lo)
#define JSLL_L2UI(ui, l) ((ui) = (l).lo)
#define JSLL_L2F(f, l) { double _d; JSLL_L2D(_d, l); (f) = (JSFloat64)_d; }
#define JSLL_L2D(d, l) { \
int _negative; \
JSInt64 _absval; \
\
_negative = (l).hi >> 31; \
if (_negative) { \
JSLL_NEG(_absval, l); \
} else { \
_absval = l; \
} \
(d) = (double)_absval.hi * 4.294967296e9 + _absval.lo; \
if (_negative) \
(d) = -(d); \
}
#define JSLL_I2L(l, i) { JSInt32 _i = (i) >> 31; (l).lo = (i); (l).hi = _i; }
#define JSLL_UI2L(l, ui) ((l).lo = (ui), (l).hi = 0)
#define JSLL_F2L(l, f) { double _d = (double)f; JSLL_D2L(l, _d); }
#define JSLL_D2L(l, d) { \
int _negative; \
double _absval, _d_hi; \
JSInt64 _lo_d; \
\
_negative = ((d) < 0); \
_absval = _negative ? -(d) : (d); \
\
(l).hi = _absval / 4.294967296e9; \
(l).lo = 0; \
JSLL_L2D(_d_hi, l); \
_absval -= _d_hi; \
_lo_d.hi = 0; \
if (_absval < 0) { \
_lo_d.lo = -_absval; \
JSLL_SUB(l, l, _lo_d); \
} else { \
_lo_d.lo = _absval; \
JSLL_ADD(l, l, _lo_d); \
} \
\
if (_negative) \
JSLL_NEG(l, l); \
}
#endif /* !HAVE_LONG_LONG */
JS_END_EXTERN_C
#endif /* jslong_h___ */

View File

@@ -1,414 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS math package.
*/
#include "jsstddef.h"
#include <math.h>
#include <stdlib.h>
#include "jstypes.h"
#include "jslong.h"
#include "prmjtime.h"
#include "jsapi.h"
#include "jsatom.h"
#include "jscntxt.h"
#include "jsconfig.h"
#include "jslock.h"
#include "jsmath.h"
#include "jsnum.h"
#include "jsobj.h"
#ifndef M_E
#define M_E 2.7182818284590452354
#endif
#ifndef M_LOG2E
#define M_LOG2E 1.4426950408889634074
#endif
#ifndef M_LOG10E
#define M_LOG10E 0.43429448190325182765
#endif
#ifndef M_LN2
#define M_LN2 0.69314718055994530942
#endif
#ifndef M_LN10
#define M_LN10 2.30258509299404568402
#endif
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#ifndef M_SQRT2
#define M_SQRT2 1.41421356237309504880
#endif
#ifndef M_SQRT1_2
#define M_SQRT1_2 0.70710678118654752440
#endif
static JSConstDoubleSpec math_constants[] = {
{M_E, "E"},
{M_LOG2E, "LOG2E"},
{M_LOG10E, "LOG10E"},
{M_LN2, "LN2"},
{M_LN10, "LN10"},
{M_PI, "PI"},
{M_SQRT2, "SQRT2"},
{M_SQRT1_2, "SQRT1_2"},
{0}
};
static JSClass math_class = {
"Math",
0,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub
};
static JSBool
math_abs(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = (x < 0) ? -x : x;
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_acos(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = acos(x);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_asin(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = asin(x);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_atan(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = atan(x);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_atan2(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, y, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
if (!js_ValueToNumber(cx, argv[1], &y))
return JS_FALSE;
z = atan2(x, y);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_ceil(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = ceil(x);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_cos(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = cos(x);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_exp(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = exp(x);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_floor(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = floor(x);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_log(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = log(x);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_max(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, y, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
if (!js_ValueToNumber(cx, argv[1], &y))
return JS_FALSE;
z = (x > y) ? x : y;
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_min(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, y, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
if (!js_ValueToNumber(cx, argv[1], &y))
return JS_FALSE;
z = (x < y) ? x : y;
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_pow(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, y, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
if (!js_ValueToNumber(cx, argv[1], &y))
return JS_FALSE;
z = pow(x, y);
return js_NewNumberValue(cx, z, rval);
}
/*
* Math.random() support, lifted from java.util.Random.java.
*/
static void
random_setSeed(JSRuntime *rt, int64 seed)
{
int64 tmp;
JSLL_I2L(tmp, 1000);
JSLL_DIV(seed, seed, tmp);
JSLL_XOR(tmp, seed, rt->rngMultiplier);
JSLL_AND(rt->rngSeed, tmp, rt->rngMask);
}
static void
random_init(JSRuntime *rt)
{
int64 tmp, tmp2;
/* Do at most once. */
if (rt->rngInitialized)
return;
rt->rngInitialized = JS_TRUE;
/* rt->rngMultiplier = 0x5DEECE66DL */
JSLL_ISHL(tmp, 0x5D, 32);
JSLL_UI2L(tmp2, 0xEECE66DL);
JSLL_OR(rt->rngMultiplier, tmp, tmp2);
/* rt->rngAddend = 0xBL */
JSLL_I2L(rt->rngAddend, 0xBL);
/* rt->rngMask = (1L << 48) - 1 */
JSLL_I2L(tmp, 1);
JSLL_SHL(tmp2, tmp, 48);
JSLL_SUB(rt->rngMask, tmp2, tmp);
/* rt->rngDscale = (jsdouble)(1L << 54) */
JSLL_SHL(tmp2, tmp, 54);
JSLL_L2D(rt->rngDscale, tmp2);
/* Finally, set the seed from current time. */
random_setSeed(rt, PRMJ_Now());
}
static uint32
random_next(JSRuntime *rt, int bits)
{
int64 nextseed, tmp;
uint32 retval;
JSLL_MUL(nextseed, rt->rngSeed, rt->rngMultiplier);
JSLL_ADD(nextseed, nextseed, rt->rngAddend);
JSLL_AND(nextseed, nextseed, rt->rngMask);
rt->rngSeed = nextseed;
JSLL_USHR(tmp, nextseed, 48 - bits);
JSLL_L2I(retval, tmp);
return retval;
}
static jsdouble
random_nextDouble(JSRuntime *rt)
{
int64 tmp, tmp2;
jsdouble d;
JSLL_ISHL(tmp, random_next(rt, 27), 27);
JSLL_UI2L(tmp2, random_next(rt, 27));
JSLL_ADD(tmp, tmp, tmp2);
JSLL_L2D(d, tmp);
return d / rt->rngDscale;
}
static JSBool
math_random(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
JSRuntime *rt;
jsdouble z;
rt = cx->runtime;
JS_LOCK_RUNTIME(rt);
random_init(rt);
z = random_nextDouble(rt);
JS_UNLOCK_RUNTIME(rt);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_round(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = floor(x + 0.5);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_sin(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = sin(x);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_sqrt(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = sqrt(x);
return js_NewNumberValue(cx, z, rval);
}
static JSBool
math_tan(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x, z;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
z = tan(x);
return js_NewNumberValue(cx, z, rval);
}
static JSFunctionSpec math_static_methods[] = {
{"abs", math_abs, 1},
{"acos", math_acos, 1},
{"asin", math_asin, 1},
{"atan", math_atan, 1},
{"atan2", math_atan2, 2},
{"ceil", math_ceil, 1},
{"cos", math_cos, 1},
{"exp", math_exp, 1},
{"floor", math_floor, 1},
{"log", math_log, 1},
{"max", math_max, 2},
{"min", math_min, 2},
{"pow", math_pow, 2},
{"random", math_random, 0},
{"round", math_round, 1},
{"sin", math_sin, 1},
{"sqrt", math_sqrt, 1},
{"tan", math_tan, 1},
{0}
};
#if JS_HAS_TOSOURCE
static JSBool
math_toSource(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
*rval = ATOM_KEY(cx->runtime->atomState.MathAtom);
return JS_TRUE;
}
static JSFunctionSpec math_methods[] = {
{js_toSource_str, math_toSource, 0},
{0}
};
#else
#define math_methods NULL
#endif
JSObject *
js_InitMathClass(JSContext *cx, JSObject *obj)
{
JSObject *proto;
proto = JS_InitClass(cx, obj, NULL, &math_class, NULL, 0,
NULL, math_methods, NULL, math_static_methods);
if (!proto)
return NULL;
if (!JS_DefineConstDoubles(cx, proto, math_constants))
return NULL;
return proto;
}

View File

@@ -1,841 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS number type and wrapper class.
*/
#include "jsstddef.h"
#include <errno.h>
#ifdef XP_PC
#include <float.h>
#endif
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "jstypes.h"
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#include "jsdtoa.h"
#include "jsprf.h"
#include "jsapi.h"
#include "jsatom.h"
#include "jscntxt.h"
#include "jsconfig.h"
#include "jsgc.h"
#include "jsinterp.h"
#include "jsnum.h"
#include "jsobj.h"
#include "jsopcode.h"
#include "jsstr.h"
union dpun {
struct {
#ifdef IS_LITTLE_ENDIAN
uint32 lo, hi;
#else
uint32 hi, lo;
#endif
} s;
jsdouble d;
};
static JSBool
num_isNaN(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
*rval = BOOLEAN_TO_JSVAL(JSDOUBLE_IS_NaN(x));
return JS_TRUE;
}
static JSBool
num_isFinite(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble x;
if (!js_ValueToNumber(cx, argv[0], &x))
return JS_FALSE;
*rval = BOOLEAN_TO_JSVAL(JSDOUBLE_IS_FINITE(x));
return JS_TRUE;
}
static JSBool
num_parseFloat(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
JSString *str;
jsdouble d;
const jschar *ep;
str = js_ValueToString(cx, argv[0]);
if (!str)
return JS_FALSE;
if (!js_strtod(cx, str->chars, &ep, &d))
return JS_FALSE;
if (ep == str->chars) {
*rval = DOUBLE_TO_JSVAL(cx->runtime->jsNaN);
return JS_TRUE;
}
return js_NewNumberValue(cx, d, rval);
}
/* See ECMA 15.1.2.2. */
static JSBool
num_parseInt(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
JSString *str;
jsint radix;
jsdouble d;
const jschar *ep;
str = js_ValueToString(cx, argv[0]);
if (!str)
return JS_FALSE;
if (argc > 1) {
if (!js_ValueToECMAInt32(cx, argv[1], &radix))
return JS_FALSE;
} else
radix = 0;
if (radix != 0 && (radix < 2 || radix > 36)) {
*rval = DOUBLE_TO_JSVAL(cx->runtime->jsNaN);
return JS_TRUE;
}
if (!js_strtointeger(cx, str->chars, &ep, radix, &d))
return JS_FALSE;
if (ep == str->chars) {
*rval = DOUBLE_TO_JSVAL(cx->runtime->jsNaN);
return JS_TRUE;
}
return js_NewNumberValue(cx, d, rval);
}
static JSFunctionSpec number_functions[] = {
{"isNaN", num_isNaN, 1},
{"isFinite", num_isFinite, 1},
{"parseFloat", num_parseFloat, 1},
{"parseInt", num_parseInt, 2},
{0}
};
static JSClass number_class = {
"Number",
JSCLASS_HAS_PRIVATE,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub
};
static JSBool
Number(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsdouble d;
jsval v;
if (argc != 0) {
if (!js_ValueToNumber(cx, argv[0], &d))
return JS_FALSE;
} else {
d = 0.0;
}
if (!js_NewNumberValue(cx, d, &v))
return JS_FALSE;
if (!cx->fp->constructing) {
*rval = v;
return JS_TRUE;
}
OBJ_SET_SLOT(cx, obj, JSSLOT_PRIVATE, v);
return JS_TRUE;
}
#if JS_HAS_TOSOURCE
static JSBool
num_toSource(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsval v;
jsdouble d;
size_t i;
char buf[64];
JSString *str;
if (!JS_InstanceOf(cx, obj, &number_class, argv))
return JS_FALSE;
v = OBJ_GET_SLOT(cx, obj, JSSLOT_PRIVATE);
if (!JSVAL_IS_NUMBER(v))
return js_obj_toSource(cx, obj, argc, argv, rval);
d = JSVAL_IS_INT(v) ? (jsdouble)JSVAL_TO_INT(v) : *JSVAL_TO_DOUBLE(v);
i = JS_snprintf(buf, sizeof buf, "(new %s(", number_class.name);
PR_cnvtf(buf + i, sizeof buf - i, 20, d);
i = strlen(buf);
JS_snprintf(buf + i, sizeof buf - i, "))");
str = JS_NewStringCopyZ(cx, buf);
if (!str)
return JS_FALSE;
*rval = STRING_TO_JSVAL(str);
return JS_TRUE;
}
#endif
static JSBool
num_toString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
jsval v;
jsdouble d;
jsint base, ival, dval;
char *bp, buf[32];
JSString *str;
if (!JS_InstanceOf(cx, obj, &number_class, argv))
return JS_FALSE;
v = OBJ_GET_SLOT(cx, obj, JSSLOT_PRIVATE);
if (!JSVAL_IS_NUMBER(v))
return js_obj_toString(cx, obj, argc, argv, rval);
d = JSVAL_IS_INT(v) ? (jsdouble)JSVAL_TO_INT(v) : *JSVAL_TO_DOUBLE(v);
if (argc != 0) {
if (!js_ValueToECMAInt32(cx, argv[0], &base))
return JS_FALSE;
if (base < 2 || base > 36) {
char numBuf[12];
JS_snprintf(numBuf, sizeof numBuf, "%ld", (long) base);
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_BAD_RADIX,
numBuf);
return JS_FALSE;
}
if (base != 10 && JSDOUBLE_IS_FINITE(d)) {
ival = (jsint) js_DoubleToInteger(d);
bp = buf + sizeof buf;
for (*--bp = '\0'; ival != 0 && --bp >= buf; ival /= base) {
dval = ival % base;
*bp = (char)((dval >= 10) ? 'a' - 10 + dval : '0' + dval);
}
if (*bp == '\0')
*--bp = '0';
str = JS_NewStringCopyZ(cx, bp);
} else {
str = js_NumberToString(cx, d);
}
} else {
str = js_NumberToString(cx, d);
}
if (!str)
return JS_FALSE;
*rval = STRING_TO_JSVAL(str);
return JS_TRUE;
}
static JSBool
num_valueOf(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
if (!JS_InstanceOf(cx, obj, &number_class, argv))
return JS_FALSE;
*rval = OBJ_GET_SLOT(cx, obj, JSSLOT_PRIVATE);
return JS_TRUE;
}
static JSFunctionSpec number_methods[] = {
#if JS_HAS_TOSOURCE
{js_toSource_str, num_toSource, 0},
#endif
{js_toString_str, num_toString, 0},
{js_valueOf_str, num_valueOf, 0},
{0}
};
/* NB: Keep this in synch with number_constants[]. */
enum nc_slot {
NC_NaN,
NC_POSITIVE_INFINITY,
NC_NEGATIVE_INFINITY,
NC_MAX_VALUE,
NC_MIN_VALUE,
NC_LIMIT
};
/*
* Some to most C compilers forbid spelling these at compile time, or barf
* if you try, so all but MAX_VALUE are set at runtime by js_InitNumberClass
* using union dpun.
*/
static JSConstDoubleSpec number_constants[] = {
{0, "NaN"},
{0, "POSITIVE_INFINITY"},
{0, "NEGATIVE_INFINITY"},
{1.7976931348623157E+308, "MAX_VALUE"},
{0, "MIN_VALUE"},
{0}
};
static jsdouble NaN;
JSObject *
js_InitNumberClass(JSContext *cx, JSObject *obj)
{
JSRuntime *rt;
union dpun u;
JSObject *proto, *ctor;
rt = cx->runtime;
if (!rt->jsNaN) {
#ifdef XP_PC
#ifdef XP_OS2
/*DSR071597 - I have no idea what this really does other than mucking with the floating */
/*point unit, but it does fix a "floating point underflow" exception I am getting, and there*/
/*is similar code in the Hursley java. Making sure we have the same code in Javascript */
/*where Netscape was calling control87 on Windows... */
_control87(MCW_EM+PC_53+RC_NEAR,MCW_EM+MCW_PC+MCW_RC);
#else
_control87(MCW_EM, MCW_EM);
#endif
#endif
u.s.hi = JSDOUBLE_HI32_EXPMASK | JSDOUBLE_HI32_MANTMASK;
u.s.lo = 0xffffffff;
number_constants[NC_NaN].dval = NaN = u.d;
rt->jsNaN = js_NewDouble(cx, NaN);
if (!rt->jsNaN || !js_LockGCThing(cx, rt->jsNaN))
return NULL;
u.s.hi = JSDOUBLE_HI32_EXPMASK;
u.s.lo = 0x00000000;
number_constants[NC_POSITIVE_INFINITY].dval = u.d;
rt->jsPositiveInfinity = js_NewDouble(cx, u.d);
if (!rt->jsPositiveInfinity ||
!js_LockGCThing(cx, rt->jsPositiveInfinity)) {
return NULL;
}
u.s.hi = JSDOUBLE_HI32_SIGNBIT | JSDOUBLE_HI32_EXPMASK;
u.s.lo = 0x00000000;
number_constants[NC_NEGATIVE_INFINITY].dval = u.d;
rt->jsNegativeInfinity = js_NewDouble(cx, u.d);
if (!rt->jsNegativeInfinity ||
!js_LockGCThing(cx, rt->jsNegativeInfinity)) {
return NULL;
}
u.s.hi = 0;
u.s.lo = 1;
number_constants[NC_MIN_VALUE].dval = u.d;
}
if (!JS_DefineFunctions(cx, obj, number_functions))
return NULL;
proto = JS_InitClass(cx, obj, NULL, &number_class, Number, 1,
NULL, number_methods, NULL, NULL);
if (!proto || !(ctor = JS_GetConstructor(cx, proto)))
return NULL;
OBJ_SET_SLOT(cx, proto, JSSLOT_PRIVATE, JSVAL_ZERO);
if (!JS_DefineConstDoubles(cx, ctor, number_constants))
return NULL;
/* ECMA 15.1.1.1 */
if (!JS_DefineProperty(cx, obj, "NaN", DOUBLE_TO_JSVAL(rt->jsNaN),
NULL, NULL, 0)) {
return NULL;
}
/* ECMA 15.1.1.2 */
if (!JS_DefineProperty(cx, obj, "Infinity",
DOUBLE_TO_JSVAL(rt->jsPositiveInfinity),
NULL, NULL, 0)) {
return NULL;
}
return proto;
}
jsdouble *
js_NewDouble(JSContext *cx, jsdouble d)
{
jsdouble *dp;
dp = js_AllocGCThing(cx, GCX_DOUBLE);
if (!dp)
return NULL;
*dp = d;
return dp;
}
void
js_FinalizeDouble(JSContext *cx, jsdouble *dp)
{
*dp = NaN;
}
JSBool
js_NewDoubleValue(JSContext *cx, jsdouble d, jsval *rval)
{
jsdouble *dp;
dp = js_NewDouble(cx, d);
if (!dp)
return JS_FALSE;
*rval = DOUBLE_TO_JSVAL(dp);
return JS_TRUE;
}
JSBool
js_NewNumberValue(JSContext *cx, jsdouble d, jsval *rval)
{
jsint i;
if (JSDOUBLE_IS_INT(d, i) && INT_FITS_IN_JSVAL(i)) {
*rval = INT_TO_JSVAL(i);
} else {
if (!js_NewDoubleValue(cx, d, rval))
return JS_FALSE;
}
return JS_TRUE;
}
JSObject *
js_NumberToObject(JSContext *cx, jsdouble d)
{
JSObject *obj;
jsval v;
obj = js_NewObject(cx, &number_class, NULL, NULL);
if (!obj)
return NULL;
if (!js_NewNumberValue(cx, d, &v)) {
cx->newborn[GCX_OBJECT] = NULL;
return NULL;
}
OBJ_SET_SLOT(cx, obj, JSSLOT_PRIVATE, v);
return obj;
}
/* XXXbe rewrite me to be ECMA-based! */
JSString *
js_NumberToString(JSContext *cx, jsdouble d)
{
jsint i;
char buf[32];
if (JSDOUBLE_IS_INT(d, i)) {
JS_snprintf(buf, sizeof buf, "%ld", (long)i);
} else {
PR_cnvtf(buf, sizeof buf, 20, d);
}
return JS_NewStringCopyZ(cx, buf);
}
JSBool
js_ValueToNumber(JSContext *cx, jsval v, jsdouble *dp)
{
JSObject *obj;
JSString *str;
const jschar *ep;
jsdouble d;
if (JSVAL_IS_OBJECT(v)) {
obj = JSVAL_TO_OBJECT(v);
if (!obj) {
*dp = 0;
return JS_TRUE;
}
if (!OBJ_DEFAULT_VALUE(cx, obj, JSTYPE_NUMBER, &v))
return JS_FALSE;
}
if (JSVAL_IS_INT(v)) {
*dp = (jsdouble)JSVAL_TO_INT(v);
} else if (JSVAL_IS_DOUBLE(v)) {
*dp = *JSVAL_TO_DOUBLE(v);
} else if (JSVAL_IS_STRING(v)) {
str = JSVAL_TO_STRING(v);
errno = 0;
/* Note that ECMAScript doesn't treat numbers beginning with a zero as octal numbers here.
* This works because all such numbers will be interpreted as decimal by js_strtod and
* will never get passed to js_strtointeger, which would interpret them as octal. */
if ((!js_strtod(cx, str->chars, &ep, &d) || js_SkipWhiteSpace(ep) != str->chars + str->length) &&
(!js_strtointeger(cx, str->chars, &ep, 0, &d) || js_SkipWhiteSpace(ep) != str->chars + str->length)) {
goto badstr;
}
*dp = d;
} else if (JSVAL_IS_BOOLEAN(v)) {
*dp = JSVAL_TO_BOOLEAN(v) ? 1 : 0;
} else {
#if JS_BUG_FALLIBLE_TONUM
str = js_DecompileValueGenerator(cx, v, NULL);
badstr:
if (str) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_NAN,
JS_GetStringBytes(str));
}
return JS_FALSE;
#else
badstr:
*dp = *cx->runtime->jsNaN;
#endif
}
return JS_TRUE;
}
JSBool
js_ValueToECMAInt32(JSContext *cx, jsval v, int32 *ip)
{
jsdouble d;
if (!js_ValueToNumber(cx, v, &d))
return JS_FALSE;
return js_DoubleToECMAInt32(cx, d, ip);
}
JSBool
js_DoubleToECMAInt32(JSContext *cx, jsdouble d, int32 *ip)
{
jsdouble two32 = 4294967296.0;
jsdouble two31 = 2147483648.0;
if (!JSDOUBLE_IS_FINITE(d) || d == 0) {
*ip = 0;
return JS_TRUE;
}
d = fmod(d, two32);
d = d >= 0 ? d : d + two32;
if (d >= two31)
*ip = (int32)(d - two32);
else
*ip = (int32)d;
return JS_TRUE;
}
JSBool
js_ValueToECMAUint32(JSContext *cx, jsval v, uint32 *ip)
{
jsdouble d;
if (!js_ValueToNumber(cx, v, &d))
return JS_FALSE;
return js_DoubleToECMAUint32(cx, d, ip);
}
JSBool
js_DoubleToECMAUint32(JSContext *cx, jsdouble d, uint32 *ip)
{
JSBool neg;
jsdouble two32 = 4294967296.0;
if (!JSDOUBLE_IS_FINITE(d) || d == 0) {
*ip = 0;
return JS_TRUE;
}
neg = (d < 0);
d = floor(neg ? -d : d);
d = neg ? -d : d;
d = fmod(d, two32);
d = d >= 0 ? d : d + two32;
*ip = (uint32)d;
return JS_TRUE;
}
JSBool
js_ValueToInt32(JSContext *cx, jsval v, int32 *ip)
{
jsdouble d;
JSString *str;
if (!js_ValueToNumber(cx, v, &d))
return JS_FALSE;
if (JSDOUBLE_IS_NaN(d) || d <= -2147483649.0 || 2147483648.0 <= d) {
str = js_DecompileValueGenerator(cx, v, NULL);
if (str) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
JSMSG_CANT_CONVERT, JS_GetStringBytes(str));
}
return JS_FALSE;
}
*ip = (int32)floor(d + 0.5); /* Round to nearest */
return JS_TRUE;
}
JSBool
js_ValueToUint16(JSContext *cx, jsval v, uint16 *ip)
{
jsdouble d;
jsuint i, m;
JSBool neg;
if (!js_ValueToNumber(cx, v, &d))
return JS_FALSE;
if (d == 0 || !JSDOUBLE_IS_FINITE(d)) {
*ip = 0;
return JS_TRUE;
}
i = (jsuint)d;
if ((jsdouble)i == d) {
*ip = (uint16)i;
return JS_TRUE;
}
neg = (d < 0);
d = floor(neg ? -d : d);
d = neg ? -d : d;
m = JS_BIT(16);
d = fmod(d, m);
if (d < 0)
d += m;
*ip = (uint16) d;
return JS_TRUE;
}
jsdouble
js_DoubleToInteger(jsdouble d)
{
JSBool neg;
if (d == 0)
return d;
if (!JSDOUBLE_IS_FINITE(d)) {
if (JSDOUBLE_IS_NaN(d))
return 0;
return d;
}
neg = (d < 0);
d = floor(neg ? -d : d);
return neg ? -d : d;
}
JSBool
js_strtod(JSContext *cx, const jschar *s, const jschar **ep, jsdouble *dp)
{
size_t i;
char *cstr, *istr, *estr;
JSBool negative;
jsdouble d;
const jschar *s1 = js_SkipWhiteSpace(s);
size_t length = js_strlen(s1);
cstr = malloc(length + 1);
if (!cstr)
return JS_FALSE;
for (i = 0; i <= length; i++) {
if (s1[i] >> 8) {
cstr[i] = 0;
break;
}
cstr[i] = (char)s1[i];
}
istr = cstr;
if ((negative = (*istr == '-')) != 0 || *istr == '+')
istr++;
if (!strncmp(istr, "Infinity", 8)) {
d = *(negative ? cx->runtime->jsNegativeInfinity : cx->runtime->jsPositiveInfinity);
estr = istr + 8;
} else {
errno = 0;
d = PR_strtod(cstr, &estr);
if (errno == ERANGE)
if (d == HUGE_VAL)
d = *cx->runtime->jsPositiveInfinity;
else if (d == -HUGE_VAL)
d = *cx->runtime->jsNegativeInfinity;
#ifdef HPUX
if (d == 0.0 && negative) {
/*
* "-0", "-1e-2000" come out as positive zero
* here on HPUX. Force a negative zero instead.
*/
JSDOUBLE_HI32(d) = JSDOUBLE_HI32_SIGNBIT;
JSDOUBLE_LO32(d) = 0;
}
#endif
}
free(cstr);
i = estr - cstr;
*ep = i ? s1 + i : s;
*dp = d;
return JS_TRUE;
}
struct BinaryDigitReader
{
uintN base; /* Base of number; must be a power of 2 */
uintN digit; /* Current digit value in radix given by base */
uintN digitMask; /* Mask to extract the next bit from digit */
const jschar *digits; /* Pointer to the remaining digits */
const jschar *end; /* Pointer to first non-digit */
};
/* Return the next binary digit from the number or -1 if done */
static intN GetNextBinaryDigit(struct BinaryDigitReader *bdr)
{
intN bit;
if (bdr->digitMask == 0) {
uintN c;
if (bdr->digits == bdr->end)
return -1;
c = *bdr->digits++;
if ('0' <= c && c <= '9')
bdr->digit = c - '0';
else if ('a' <= c && c <= 'z')
bdr->digit = c - 'a' + 10;
else bdr->digit = c - 'A' + 10;
bdr->digitMask = bdr->base >> 1;
}
bit = (bdr->digit & bdr->digitMask) != 0;
bdr->digitMask >>= 1;
return bit;
}
JSBool
js_strtointeger(JSContext *cx, const jschar *s, const jschar **ep, jsint base, jsdouble *dp)
{
JSBool negative;
jsdouble value;
const jschar *start;
const jschar *s1 = js_SkipWhiteSpace(s);
if ((negative = (*s1 == '-')) != 0 || *s1 == '+')
s1++;
if (base == 0)
/* No base supplied, or some base that evaluated to 0. */
if (*s1 == '0')
/* It's either hex or octal; only increment char if str isn't '0' */
if (s1[1] == 'X' || s1[1] == 'x') { /* Hex */
s1 += 2;
base = 16;
} else /* Octal */
base = 8;
else
base = 10; /* Default to decimal. */
else if (base == 16 && *s1 == '0' && (s1[1] == 'X' || s1[1] == 'x'))
/* If base is 16, ignore hex prefix. */
s1 += 2;
/* Done with the preliminaries; find some prefix of the string that's
* a number in the given base.
*/
start = s1; /* Mark - if string is empty, we return NaN. */
value = 0.0;
while (1) {
uintN digit;
jschar c = *s1;
if ('0' <= c && c <= '9')
digit = c - '0';
else if ('a' <= c && c <= 'z')
digit = c - 'a' + 10;
else if ('A' <= c && c <= 'Z')
digit = c - 'A' + 10;
else
break;
if (digit >= (uintN)base)
break;
value = value*base + digit;
s1++;
}
if (value >= 9007199254740992.0)
if (base == 10) {
/* If we're accumulating a decimal number and the number is >= 2^53, then
* the result from the repeated multiply-add above may be inaccurate. Call
* PR_strtod to get the correct answer.
*/
size_t i;
size_t length = s1 - start;
char *cstr = malloc(length + 1);
char *estr;
if (!cstr)
return JS_FALSE;
for (i = 0; i != length; i++)
cstr[i] = (char)start[i];
cstr[length] = 0;
errno = 0;
value = PR_strtod(cstr, &estr);
if (errno == ERANGE && value == HUGE_VAL)
value = *cx->runtime->jsPositiveInfinity;
free(cstr);
} else if (base == 2 || base == 4 || base == 8 || base == 16 || base == 32) {
/* The number may also be inaccurate for one of these bases. This
* happens if the addition in value*base + digit causes a round-down
* to an even least significant mantissa bit when the first dropped bit
* is a one. If any of the following digits in the number (which haven't
* been added in yet) are nonzero then the correct action would have
* been to round up instead of down. An example of this occurs when
* reading the number 0x1000000000000081, which rounds to 0x1000000000000000
* instead of 0x1000000000000100.
*/
struct BinaryDigitReader bdr;
intN bit, bit2;
intN j;
bdr.base = base;
bdr.digitMask = 0;
bdr.digits = start;
bdr.end = s1;
value = 0.0;
/* Skip leading zeros. */
do {
bit = GetNextBinaryDigit(&bdr);
} while (bit == 0);
if (bit == 1) {
/* Gather the 53 significant bits (including the leading 1) */
value = 1.0;
for (j = 52; j; j--) {
bit = GetNextBinaryDigit(&bdr);
if (bit < 0)
goto done;
value = value*2 + bit;
}
/* bit2 is the 54th bit (the first dropped from the mantissa) */
bit2 = GetNextBinaryDigit(&bdr);
if (bit2 >= 0) {
jsdouble factor = 2.0;
intN sticky = 0; /* sticky is 1 if any bit beyond the 54th is 1 */
intN bit3;
while ((bit3 = GetNextBinaryDigit(&bdr)) >= 0) {
sticky |= bit3;
factor *= 2;
}
value += bit2 & (bit | sticky);
value *= factor;
}
done:;
}
}
/* We don't worry about inaccurate numbers for any other base. */
if (s1 == start) {
*dp = 0.0;
*ep = s;
} else {
*dp = negative ? -value : value;
*ep = s1;
}
return JS_TRUE;
}

View File

@@ -1,167 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsnum_h___
#define jsnum_h___
/*
* JS number (IEEE double) interface.
*
* JS numbers are optimistically stored in the top 31 bits of 32-bit integers,
* but floating point literals, results that overflow 31 bits, and division and
* modulus operands and results require a 64-bit IEEE double. These are GC'ed
* and pointed to by 32-bit jsvals on the stack and in object properties.
*
* When a JS number is treated as an object (followed by . or []), the runtime
* wraps it with a JSObject whose valueOf method returns the unwrapped number.
*/
JS_BEGIN_EXTERN_C
#ifdef IS_LITTLE_ENDIAN
#define JSDOUBLE_HI32(x) (((uint32 *)&(x))[1])
#define JSDOUBLE_LO32(x) (((uint32 *)&(x))[0])
#else
#define JSDOUBLE_HI32(x) (((uint32 *)&(x))[0])
#define JSDOUBLE_LO32(x) (((uint32 *)&(x))[1])
#endif
#define JSDOUBLE_HI32_SIGNBIT 0x80000000
#define JSDOUBLE_HI32_EXPMASK 0x7ff00000
#define JSDOUBLE_HI32_MANTMASK 0x000fffff
#define JSDOUBLE_IS_NaN(x) \
((JSDOUBLE_HI32(x) & JSDOUBLE_HI32_EXPMASK) == JSDOUBLE_HI32_EXPMASK && \
(JSDOUBLE_LO32(x) || (JSDOUBLE_HI32(x) & JSDOUBLE_HI32_MANTMASK)))
#define JSDOUBLE_IS_INFINITE(x) \
((JSDOUBLE_HI32(x) & ~JSDOUBLE_HI32_SIGNBIT) == JSDOUBLE_HI32_EXPMASK && \
!JSDOUBLE_LO32(x))
#define JSDOUBLE_IS_FINITE(x) \
((JSDOUBLE_HI32(x) & JSDOUBLE_HI32_EXPMASK) != JSDOUBLE_HI32_EXPMASK)
#define JSDOUBLE_IS_NEGZERO(d) (JSDOUBLE_HI32(d) == JSDOUBLE_HI32_SIGNBIT && \
JSDOUBLE_LO32(d) == 0)
/*
* JSDOUBLE_IS_INT first checks that d is neither NaN nor infinite, to avoid
* raising SIGFPE on platforms such as Alpha Linux, then (only if the cast is
* safe) leaves i as (jsint)d. This also avoid anomalous NaN floating point
* comparisons under MSVC.
*/
#define JSDOUBLE_IS_INT(d, i) (JSDOUBLE_IS_FINITE(d) && !JSDOUBLE_IS_NEGZERO(d) \
&& ((d) == (i = (jsint)(d))))
/* Initialize the Number class, returning its prototype object. */
extern JSObject *
js_InitNumberClass(JSContext *cx, JSObject *obj);
/* GC-allocate a new JS number. */
extern jsdouble *
js_NewDouble(JSContext *cx, jsdouble d);
extern void
js_FinalizeDouble(JSContext *cx, jsdouble *dp);
extern JSBool
js_NewDoubleValue(JSContext *cx, jsdouble d, jsval *rval);
extern JSBool
js_NewNumberValue(JSContext *cx, jsdouble d, jsval *rval);
/* Construct a Number instance that wraps around d. */
extern JSObject *
js_NumberToObject(JSContext *cx, jsdouble d);
/* Convert a number to a GC'ed string. */
extern JSString *
js_NumberToString(JSContext *cx, jsdouble d);
/*
* Convert a value to a number, returning false after reporting any error,
* otherwise returning true with *dp set.
*/
extern JSBool
js_ValueToNumber(JSContext *cx, jsval v, jsdouble *dp);
/*
* Convert a value or a double to an int32, according to the ECMA rules
* for ToInt32.
*/
extern JSBool
js_ValueToECMAInt32(JSContext *cx, jsval v, int32 *ip);
extern JSBool
js_DoubleToECMAInt32(JSContext *cx, jsdouble d, int32 *ip);
/*
* Convert a value or a double to a uint32, according to the ECMA rules
* for ToUint32.
*/
extern JSBool
js_ValueToECMAUint32(JSContext *cx, jsval v, uint32 *ip);
extern JSBool
js_DoubleToECMAUint32(JSContext *cx, jsdouble d, uint32 *ip);
/*
* Convert a value to a number, then to an int32 if it fits by rounding to
* nearest; but failing with an error report if the double is out of range
* or unordered.
*/
extern JSBool
js_ValueToInt32(JSContext *cx, jsval v, int32 *ip);
/*
* Convert a value to a number, then to a uint16 according to the ECMA rules
* for ToUint16.
*/
extern JSBool
js_ValueToUint16(JSContext *cx, jsval v, uint16 *ip);
/*
* Convert a jsdouble to an integral number, stored in a jsdouble.
* If d is NaN, return 0. If d is an infinity, return it without conversion.
*/
extern jsdouble
js_DoubleToInteger(jsdouble d);
/*
* Similar to strtod except that replaces overflows with infinities of the correct
* sign and underflows with zeros of the correct sign. Guaranteed to return the
* closest double number to the given input in dp.
* Also allows inputs of the form [+|-]Infinity, which produce an infinity of the
* appropriate sign. The case of the "Infinity" string must match.
* If the string does not have a number in it, set *ep to s and return 0.0 in dp.
* Return false if out of memory.
*/
extern JSBool
js_strtod(JSContext *cx, const jschar *s, const jschar **ep, jsdouble *dp);
/*
* Similar to strtol except that handles integers of arbitrary size. Guaranteed to
* return the closest double number to the given input when radix is 10 or a power of 2.
* May experience roundoff errors for very large numbers of a different radix.
* If the string does not have a number in it, set *ep to s and return 0.0 in dp.
* Return false if out of memory.
*/
extern JSBool
js_strtointeger(JSContext *cx, const jschar *s, const jschar **ep, jsint radix, jsdouble *dp);
JS_END_EXTERN_C
#endif /* jsnum_h___ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,335 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsobj_h___
#define jsobj_h___
/*
* JS object definitions.
*
* A JS object consists of a possibly-shared object descriptor containing
* ordered property names, called the map; and a dense vector of property
* values, called slots. The map/slot pointer pair is GC'ed, while the map
* is reference counted and the slot vector is malloc'ed.
*/
#ifdef NETSCAPE_INTERNAL
#ifndef NSPR20
#include "jshash.h"
#else
/* Removed by JSIFY: #include "JShash.h"
*/
#include "jshash.h" /* Added by JSIFY */
#endif
#endif
#include "jsprvtd.h"
#include "jspubtd.h"
JS_BEGIN_EXTERN_C
struct JSObjectMap {
jsrefcount nrefs; /* count of all referencing objects */
JSObjectOps *ops; /* high level object operation vtable */
uint32 nslots; /* length of obj->slots vector */
uint32 freeslot; /* index of next free obj->slots element */
};
/* Shorthand macros for frequently-made calls. */
#if defined JS_THREADSAFE && defined DEBUG
#define OBJ_LOOKUP_PROPERTY(cx,obj,id,objp,propp) \
(obj)->map->ops->lookupProperty(cx,obj,id,objp,propp,__FILE__,__LINE__)
#else
#define OBJ_LOOKUP_PROPERTY(cx,obj,id,objp,propp) \
(obj)->map->ops->lookupProperty(cx,obj,id,objp,propp)
#endif
#define OBJ_DEFINE_PROPERTY(cx,obj,id,value,getter,setter,attrs,propp) \
(obj)->map->ops->defineProperty(cx,obj,id,value,getter,setter,attrs,propp)
#define OBJ_GET_PROPERTY(cx,obj,id,vp) \
(obj)->map->ops->getProperty(cx,obj,id,vp)
#define OBJ_SET_PROPERTY(cx,obj,id,vp) \
(obj)->map->ops->setProperty(cx,obj,id,vp)
#define OBJ_GET_ATTRIBUTES(cx,obj,id,prop,attrsp) \
(obj)->map->ops->getAttributes(cx,obj,id,prop,attrsp)
#define OBJ_SET_ATTRIBUTES(cx,obj,id,prop,attrsp) \
(obj)->map->ops->setAttributes(cx,obj,id,prop,attrsp)
#define OBJ_DELETE_PROPERTY(cx,obj,id,rval) \
(obj)->map->ops->deleteProperty(cx,obj,id,rval)
#define OBJ_DEFAULT_VALUE(cx,obj,hint,vp) \
(obj)->map->ops->defaultValue(cx,obj,hint,vp)
#define OBJ_ENUMERATE(cx,obj,enum_op,statep,idp) \
(obj)->map->ops->enumerate(cx,obj,enum_op,statep,idp)
#define OBJ_CHECK_ACCESS(cx,obj,id,mode,vp,attrsp) \
(obj)->map->ops->checkAccess(cx,obj,id,mode,vp,attrsp)
/* These two are time-optimized to avoid stub calls. */
#define OBJ_THIS_OBJECT(cx,obj) \
((obj)->map->ops->thisObject \
? (obj)->map->ops->thisObject(cx,obj) \
: (obj))
#define OBJ_DROP_PROPERTY(cx,obj,prop) \
((obj)->map->ops->dropProperty \
? (obj)->map->ops->dropProperty(cx,obj,prop) \
: (void)0)
struct JSObject {
JSObjectMap *map;
jsval *slots;
};
#define JSSLOT_PROTO 0
#define JSSLOT_PARENT 1
#define JSSLOT_CLASS 2
#define JSSLOT_PRIVATE 3
#define JSSLOT_START 3
#define JSSLOT_FREE(clasp) (((clasp)->flags & JSCLASS_HAS_PRIVATE) \
? JSSLOT_PRIVATE + 1 \
: JSSLOT_START)
#define JS_INITIAL_NSLOTS 5
#ifdef DEBUG
#define MAP_CHECK_SLOT(map,slot) \
JS_ASSERT((uint32)slot < JS_MAX((map)->nslots, (map)->freeslot))
#define OBJ_CHECK_SLOT(obj,slot) \
MAP_CHECK_SLOT((obj)->map, slot)
#else
#define OBJ_CHECK_SLOT(obj,slot) ((void)0)
#endif
/* Fast macros for accessing obj->slots while obj is locked (if thread-safe). */
#define LOCKED_OBJ_GET_SLOT(obj,slot) \
(OBJ_CHECK_SLOT(obj, slot), (obj)->slots[slot])
#define LOCKED_OBJ_SET_SLOT(obj,slot,value) \
(OBJ_CHECK_SLOT(obj, slot), (obj)->slots[slot] = (value))
#define LOCKED_OBJ_GET_PROTO(obj) \
JSVAL_TO_OBJECT(LOCKED_OBJ_GET_SLOT(obj, JSSLOT_PROTO))
#define LOCKED_OBJ_GET_CLASS(obj) \
((JSClass *)JSVAL_TO_PRIVATE(LOCKED_OBJ_GET_SLOT(obj, JSSLOT_CLASS)))
#ifdef JS_THREADSAFE
/* Thread-safe functions and wrapper macros for accessing obj->slots. */
#define OBJ_GET_SLOT(cx,obj,slot) \
(OBJ_CHECK_SLOT(obj, slot), js_GetSlotWhileLocked(cx, obj, slot))
#define OBJ_SET_SLOT(cx,obj,slot,value) \
(OBJ_CHECK_SLOT(obj, slot), js_SetSlotWhileLocked(cx, obj, slot, value))
#else /* !JS_THREADSAFE */
#define OBJ_GET_SLOT(cx,obj,slot) LOCKED_OBJ_GET_SLOT(obj,slot)
#define OBJ_SET_SLOT(cx,obj,slot,value) LOCKED_OBJ_SET_SLOT(obj,slot,value)
#endif /* !JS_THREADSAFE */
/* Thread-safe proto, parent, and class access macros. */
#define OBJ_GET_PROTO(cx,obj) \
JSVAL_TO_OBJECT(OBJ_GET_SLOT(cx, obj, JSSLOT_PROTO))
#define OBJ_SET_PROTO(cx,obj,proto) \
OBJ_SET_SLOT(cx, obj, JSSLOT_PROTO, OBJECT_TO_JSVAL(proto))
#define OBJ_GET_PARENT(cx,obj) \
JSVAL_TO_OBJECT(OBJ_GET_SLOT(cx, obj, JSSLOT_PARENT))
#define OBJ_SET_PARENT(cx,obj,parent) \
OBJ_SET_SLOT(cx, obj, JSSLOT_PARENT, OBJECT_TO_JSVAL(parent))
#define OBJ_GET_CLASS(cx,obj) \
((JSClass *)JSVAL_TO_PRIVATE(OBJ_GET_SLOT(cx, obj, JSSLOT_CLASS)))
/* Test whether a map or object is native. */
#define MAP_IS_NATIVE(map) ((map)->ops == &js_ObjectOps || \
(map)->ops == &js_WithObjectOps)
#define OBJ_IS_NATIVE(obj) MAP_IS_NATIVE((obj)->map)
extern JS_FRIEND_DATA(JSObjectOps) js_ObjectOps;
extern JS_FRIEND_DATA(JSObjectOps) js_WithObjectOps;
extern JSClass js_ObjectClass;
extern JSClass js_WithClass;
struct JSSharpObjectMap {
jsrefcount depth;
jsatomid sharpgen;
JSHashTable *table;
};
#define SHARP_BIT 1
#define IS_SHARP(he) ((jsatomid)(he)->value & SHARP_BIT)
#define MAKE_SHARP(he) ((he)->value = (void*)((jsatomid)(he)->value|SHARP_BIT))
extern JSHashEntry *
js_EnterSharpObject(JSContext *cx, JSObject *obj, JSIdArray **idap,
jschar **sp);
extern void
js_LeaveSharpObject(JSContext *cx, JSIdArray **idap);
extern JSBool
js_obj_toSource(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval);
extern JSBool
js_obj_toString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval);
extern JSObject *
js_InitObjectClass(JSContext *cx, JSObject *obj);
extern void
js_InitObjectMap(JSObjectMap *map, jsrefcount nrefs, JSObjectOps *ops,
JSClass *clasp);
extern JSObjectMap *
js_NewObjectMap(JSContext *cx, jsrefcount nrefs, JSObjectOps *ops,
JSClass *clasp, JSObject *obj);
extern void
js_DestroyObjectMap(JSContext *cx, JSObjectMap *map);
extern JSObjectMap *
js_HoldObjectMap(JSContext *cx, JSObjectMap *map);
extern JSObjectMap *
js_DropObjectMap(JSContext *cx, JSObjectMap *map, JSObject *obj);
extern JSObject *
js_NewObject(JSContext *cx, JSClass *clasp, JSObject *proto, JSObject *parent);
extern JSObject *
js_ConstructObject(JSContext *cx, JSClass *clasp, JSObject *proto,
JSObject *parent);
extern void
js_FinalizeObject(JSContext *cx, JSObject *obj);
extern JSBool
js_AllocSlot(JSContext *cx, JSObject *obj, uint32 *slotp);
extern void
js_FreeSlot(JSContext *cx, JSObject *obj, uint32 slot);
/*
* On error, return false. On success, if propp is non-null, return true with
* obj locked and with a held property in *propp; if propp is null, return true
* but release obj's lock first. Therefore all callers who pass non-null propp
* result parameters must later call OBJ_DROP_PROPERTY(cx, obj, *propp) both to
* drop the held property, and to release the lock on obj.
*/
extern JSBool
js_DefineProperty(JSContext *cx, JSObject *obj, jsid id, jsval value,
JSPropertyOp getter, JSPropertyOp setter, uintN attrs,
JSProperty **propp);
/*
* Unlike js_DefineProperty, propp must be non-null. On success, and if id was
* found, return true with *objp non-null and locked, and with a held property
* stored in *propp. If successful but id was not found, return true with both
* *objp and *propp null. Therefore all callers who receive a non-null *propp
* must later call OBJ_DROP_PROPERTY(cx, *objp, *propp).
*/
#if defined JS_THREADSAFE && defined DEBUG
extern JS_FRIEND_API(JSBool)
_js_LookupProperty(JSContext *cx, JSObject *obj, jsid id, JSObject **objp,
JSProperty **propp, const char *file, uintN line);
#define js_LookupProperty(cx,obj,id,objp,propp) \
_js_LookupProperty(cx,obj,id,objp,propp,__FILE__,__LINE__)
#else
extern JS_FRIEND_API(JSBool)
js_LookupProperty(JSContext *cx, JSObject *obj, jsid id, JSObject **objp,
JSProperty **propp);
#endif
extern JS_FRIEND_API(JSBool)
js_FindProperty(JSContext *cx, jsid id, JSObject **objp, JSObject **pobjp,
JSProperty **propp);
extern JSBool
js_FindVariable(JSContext *cx, jsid id, JSObject **objp, JSObject **pobjp,
JSProperty **propp);
extern JSObject *
js_FindVariableScope(JSContext *cx, JSFunction **funp);
extern JSBool
js_GetProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp);
extern JSBool
js_SetProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp);
extern JSBool
js_GetAttributes(JSContext *cx, JSObject *obj, jsid id, JSProperty *prop,
uintN *attrsp);
extern JSBool
js_SetAttributes(JSContext *cx, JSObject *obj, jsid id, JSProperty *prop,
uintN *attrsp);
extern JSBool
js_DeleteProperty(JSContext *cx, JSObject *obj, jsid id, jsval *rval);
extern JSBool
js_DefaultValue(JSContext *cx, JSObject *obj, JSType hint, jsval *vp);
extern JSBool
js_Enumerate(JSContext *cx, JSObject *obj, JSIterateOp enum_op,
jsval *statep, jsid *idp);
extern JSBool
js_CheckAccess(JSContext *cx, JSObject *obj, jsid id, JSAccessMode mode,
jsval *vp, uintN *attrsp);
extern JSBool
js_Call(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
extern JSBool
js_Construct(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval);
extern JSBool
js_HasInstance(JSContext *cx, JSObject *obj, jsval v, JSBool *bp);
extern JSBool
js_IsDelegate(JSContext *cx, JSObject *obj, jsval v, JSBool *bp);
extern JSBool
js_GetClassPrototype(JSContext *cx, const char *name, JSObject **protop);
extern JSBool
js_SetClassPrototype(JSContext *cx, JSObject *ctor, JSObject *proto,
uintN attrs);
extern JSBool
js_ValueToObject(JSContext *cx, jsval v, JSObject **objp);
extern JSObject *
js_ValueToNonNullObject(JSContext *cx, jsval v);
extern void
js_TryValueOf(JSContext *cx, JSObject *obj, JSType type, jsval *rval);
extern void
js_TryMethod(JSContext *cx, JSObject *obj, JSAtom *atom,
uintN argc, jsval *argv, jsval *rval);
extern JSBool
js_XDRObject(JSXDRState *xdr, JSObject **objp);
extern JSIdArray *
js_NewIdArray(JSContext *cx, jsint length);
JS_END_EXTERN_C
#endif /* jsobj_h___ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,188 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsopcode_h___
#define jsopcode_h___
/*
* JS bytecode definitions.
*/
#include <stddef.h>
#include "jsprvtd.h"
#include "jspubtd.h"
JS_BEGIN_EXTERN_C
/*
* JS operation bytecodes.
*/
typedef enum JSOp {
#define OPDEF(op,val,name,token,length,nuses,ndefs,prec,format) \
op = val,
#include "jsopcode.tbl"
#undef OPDEF
JSOP_LIMIT
} JSOp;
/*
* JS bytecode formats.
*/
#define JOF_BYTE 0 /* single bytecode, no immediates */
#define JOF_JUMP 1 /* signed 16-bit jump offset immediate */
#define JOF_CONST 2 /* unsigned 16-bit constant pool index */
#define JOF_UINT16 3 /* unsigned 16-bit immediate operand */
#define JOF_TABLESWITCH 4 /* table switch */
#define JOF_LOOKUPSWITCH 5 /* lookup switch */
#define JOF_QARG 6 /* quickened get/set function argument ops */
#define JOF_QVAR 7 /* quickened get/set local variable ops */
#define JOF_TYPEMASK 0x000f /* mask for above immediate types */
#define JOF_NAME 0x0010 /* name operation */
#define JOF_PROP 0x0020 /* obj.prop operation */
#define JOF_ELEM 0x0030 /* obj[index] operation */
#define JOF_MODEMASK 0x0030 /* mask for above addressing modes */
#define JOF_SET 0x0040 /* set (i.e., assignment) operation */
#define JOF_DEL 0x0080 /* delete operation */
#define JOF_DEC 0x0100 /* decrement (--, not ++) opcode */
#define JOF_INC 0x0200 /* increment (++, not --) opcode */
#define JOF_INCDEC 0x0300 /* increment or decrement opcode */
#define JOF_POST 0x0400 /* postorder increment or decrement */
#define JOF_IMPORT 0x0800 /* import property op */
#define JOF_FOR2 0x1000 /* new for/in loop bytecodes */
/*
* Immediate operand getters, setters, and bounds.
*/
#define JUMP_OFFSET_LEN 2
#define JUMP_OFFSET_HI(off) ((jsbytecode)((off) >> 8))
#define JUMP_OFFSET_LO(off) ((jsbytecode)(off))
#define GET_JUMP_OFFSET(pc) ((int16)(((pc)[1] << 8) | (pc)[2]))
#define SET_JUMP_OFFSET(pc,off) ((pc)[1] = JUMP_OFFSET_HI(off), \
(pc)[2] = JUMP_OFFSET_LO(off))
#define JUMP_OFFSET_MIN ((int16)0x8000)
#define JUMP_OFFSET_MAX ((int16)0x7fff)
#define ATOM_INDEX_LEN 2
#define ATOM_INDEX_HI(index) ((jsbytecode)((index) >> 8))
#define ATOM_INDEX_LO(index) ((jsbytecode)(index))
#define GET_ATOM_INDEX(pc) (((pc)[1] << 8) | (pc)[2])
#define SET_ATOM_INDEX(pc,index)((pc)[1] = ATOM_INDEX_HI(index), \
(pc)[2] = ATOM_INDEX_LO(index))
#define GET_ATOM(cx,script,pc) js_GetAtom((cx), &(script)->atomMap, \
GET_ATOM_INDEX(pc))
#define ATOM_INDEX_LIMIT_LOG2 16
#define ATOM_INDEX_LIMIT ((uint32)1 << ATOM_INDEX_LIMIT_LOG2)
#define ARGC_HI(argc) ((jsbytecode)((argc) >> 8))
#define ARGC_LO(argc) ((jsbytecode)(argc))
#define GET_ARGC(pc) (((pc)[1] << 8) | (pc)[2])
#define ARGC_LIMIT ((uint32)1 << 16)
/* Synonyms for quick JOF_QARG and JOF_QVAR bytecodes. */
#define GET_ARGNO(pc) GET_ARGC(pc)
#define SET_ARGNO(pc,argno) SET_JUMP_OFFSET(pc,argno)
#define GET_VARNO(pc) GET_ARGC(pc)
#define SET_VARNO(pc,varno) SET_JUMP_OFFSET(pc,varno)
struct JSCodeSpec {
const char *name; /* JS bytecode name */
const char *token; /* JS source literal or null */
int8 length; /* length including opcode byte */
int8 nuses; /* arity, -1 if variadic */
int8 ndefs; /* number of stack results */
uint8 prec; /* operator precedence */
uint32 format; /* immediate operand format */
};
extern char js_in_str[];
extern char js_instanceof_str[];
extern char js_new_str[];
extern char js_delete_str[];
extern char js_typeof_str[];
extern char js_void_str[];
extern char js_null_str[];
extern char js_this_str[];
extern char js_false_str[];
extern char js_true_str[];
extern JSCodeSpec js_CodeSpec[];
extern uintN js_NumCodeSpecs;
extern jschar js_EscapeMap[];
/*
* Return a GC'ed string containing the chars in str, with any non-printing
* chars or quotes (' or " as specified by the quote argument) escaped, and
* with the quote character at the beginning and end of the result string.
*/
extern JSString *
js_QuoteString(JSContext *cx, JSString *str, jschar quote);
/*
* JSPrinter operations, for printf style message formatting. The return
* value from js_GetPrinterOutput() is the printer's cumulative output, in
* a GC'ed string.
*/
extern JSPrinter *
js_NewPrinter(JSContext *cx, const char *name, uintN indent);
extern void
js_DestroyPrinter(JSPrinter *jp);
extern JSString *
js_GetPrinterOutput(JSPrinter *jp);
extern int
js_printf(JSPrinter *jp, char *format, ...);
extern JSBool
js_puts(JSPrinter *jp, char *s);
#ifdef DEBUG
/*
* Disassemblers, for debugging only.
*/
#include <stdio.h>
extern JS_FRIEND_API(void)
js_Disassemble(JSContext *cx, JSScript *script, JSBool lines, FILE *fp);
extern JS_FRIEND_API(uintN)
js_Disassemble1(JSContext *cx, JSScript *script, jsbytecode *pc, uintN loc,
JSBool lines, FILE *fp);
#endif /* DEBUG */
/*
* Decompilers, for script, function, and expression pretty-printing.
*/
extern JSBool
js_DecompileCode(JSPrinter *jp, JSScript *script, jsbytecode *pc, uintN len);
extern JSBool
js_DecompileScript(JSPrinter *jp, JSScript *script);
extern JSBool
js_DecompileFunction(JSPrinter *jp, JSFunction *fun, JSBool newlines);
/*
* Find the source expression that resulted in v, and return a new string
* containing it. Fall back on v's string conversion if we can't find the
* bytecode that generated and pushed v on the operand stack.
*/
extern JSString *
js_DecompileValueGenerator(JSContext *cx, jsval v, JSString *fallback);
JS_END_EXTERN_C
#endif /* jsopcode_h___ */

View File

@@ -1,212 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JavaScript operation bytecodes.
*
* Includers must define an OPDEF macro of the following form:
*
* #define OPDEF(op,val,name,image,length,nuses,ndefs,prec,format) ...
*
* Selected arguments can be expanded in initializers. The op argument is
* expanded followed by comma in the JSOp enum (jsopcode.h), e.g. The value
* field must be dense for now, because jsopcode.c uses an OPDEF() expansion
* inside the js_CodeSpec[] initializer.
*
* Field Description
* op Bytecode name, which is the JSOp enumerator name
* value Bytecode value, which is the JSOp enumerator value
* name C string containing name for disassembler
* image C string containing "image" for pretty-printer, null if ugly
* length Number of bytes including any immediate operands
* nuses Number of stack slots consumed by bytecode, -1 if variadic
* ndefs Number of stack slots produced by bytecode
* prec Operator precedence, zero if not an operator
* format Bytecode plus immediate operand encoding format
*
* This file is best viewed with 116 columns:
01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345
*/
/* legend: op val name image len use def prec format */
/* Permanently-assigned bytecodes. */
OPDEF(JSOP_NOP, 0, "nop", NULL, 1, 0, 0, 0, JOF_BYTE)
OPDEF(JSOP_PUSH, 1, "push", NULL, 1, 0, 1, 0, JOF_BYTE)
OPDEF(JSOP_POPV, 2, "popv", NULL, 1, 1, 0, 0, JOF_BYTE)
OPDEF(JSOP_ENTERWITH, 3, "enterwith", NULL, 1, 1, 1, 0, JOF_BYTE)
OPDEF(JSOP_LEAVEWITH, 4, "leavewith", NULL, 1, 1, 0, 0, JOF_BYTE)
OPDEF(JSOP_RETURN, 5, "return", NULL, 1, 1, 0, 0, JOF_BYTE)
OPDEF(JSOP_GOTO, 6, "goto", NULL, 3, 0, 0, 0, JOF_JUMP)
OPDEF(JSOP_IFEQ, 7, "ifeq", NULL, 3, 1, 0, 0, JOF_JUMP)
OPDEF(JSOP_IFNE, 8, "ifne", NULL, 3, 1, 0, 0, JOF_JUMP)
OPDEF(JSOP_FORNAME, 9, "forname", NULL, 3, 1, 1, 0, JOF_CONST|JOF_NAME|JOF_SET)
OPDEF(JSOP_FORPROP, 10, "forprop", NULL, 3, 2, 1, 0, JOF_CONST|JOF_PROP|JOF_SET)
OPDEF(JSOP_FORELEM, 11, "forelem", NULL, 1, 3, 1, 0, JOF_BYTE |JOF_ELEM|JOF_SET)
OPDEF(JSOP_DUP, 12, "dup", NULL, 1, 1, 2, 0, JOF_BYTE)
OPDEF(JSOP_DUP2, 13, "dup2", NULL, 1, 2, 4, 0, JOF_BYTE)
OPDEF(JSOP_SETNAME, 14, "setname", NULL, 3, 1, 1, 1, JOF_CONST|JOF_NAME|JOF_SET)
OPDEF(JSOP_BITOR, 15, "bitor", "|", 1, 2, 1, 2, JOF_BYTE)
OPDEF(JSOP_BITXOR, 16, "bitxor", "^", 1, 2, 1, 3, JOF_BYTE)
OPDEF(JSOP_BITAND, 17, "bitand", "&", 1, 2, 1, 4, JOF_BYTE)
OPDEF(JSOP_EQ, 18, "eq", "==", 1, 2, 1, 5, JOF_BYTE)
OPDEF(JSOP_NE, 19, "ne", "!=", 1, 2, 1, 5, JOF_BYTE)
OPDEF(JSOP_LT, 20, "lt", "<", 1, 2, 1, 6, JOF_BYTE)
OPDEF(JSOP_LE, 21, "le", "<=", 1, 2, 1, 6, JOF_BYTE)
OPDEF(JSOP_GT, 22, "gt", ">", 1, 2, 1, 6, JOF_BYTE)
OPDEF(JSOP_GE, 23, "ge", ">=", 1, 2, 1, 6, JOF_BYTE)
OPDEF(JSOP_LSH, 24, "lsh", "<<", 1, 2, 1, 7, JOF_BYTE)
OPDEF(JSOP_RSH, 25, "rsh", ">>", 1, 2, 1, 7, JOF_BYTE)
OPDEF(JSOP_URSH, 26, "ursh", ">>>", 1, 2, 1, 7, JOF_BYTE)
OPDEF(JSOP_ADD, 27, "add", "+", 1, 2, 1, 8, JOF_BYTE)
OPDEF(JSOP_SUB, 28, "sub", "-", 1, 2, 1, 8, JOF_BYTE)
OPDEF(JSOP_MUL, 29, "mul", "*", 1, 2, 1, 9, JOF_BYTE)
OPDEF(JSOP_DIV, 30, "div", "/", 1, 2, 1, 9, JOF_BYTE)
OPDEF(JSOP_MOD, 31, "mod", "%", 1, 2, 1, 9, JOF_BYTE)
OPDEF(JSOP_NOT, 32, "not", "!", 1, 1, 1, 10, JOF_BYTE)
OPDEF(JSOP_BITNOT, 33, "bitnot", "~", 1, 1, 1, 10, JOF_BYTE)
OPDEF(JSOP_NEG, 34, "neg", "-", 1, 1, 1, 10, JOF_BYTE)
OPDEF(JSOP_NEW, 35, js_new_str, NULL, 3, -1, 1, 10, JOF_UINT16)
OPDEF(JSOP_DELNAME, 36, "delname", NULL, 3, 0, 1, 10, JOF_CONST|JOF_NAME|JOF_DEL)
OPDEF(JSOP_DELPROP, 37, "delprop", NULL, 3, 1, 1, 10, JOF_CONST|JOF_PROP|JOF_DEL)
OPDEF(JSOP_DELELEM, 38, "delelem", NULL, 1, 2, 1, 10, JOF_BYTE |JOF_ELEM|JOF_DEL)
OPDEF(JSOP_TYPEOF, 39, js_typeof_str,NULL, 1, 1, 1, 10, JOF_BYTE)
OPDEF(JSOP_VOID, 40, js_void_str, NULL, 1, 1, 1, 10, JOF_BYTE)
OPDEF(JSOP_INCNAME, 41, "incname", NULL, 3, 0, 1, 10, JOF_CONST|JOF_NAME|JOF_INC)
OPDEF(JSOP_INCPROP, 42, "incprop", NULL, 3, 1, 1, 10, JOF_CONST|JOF_PROP|JOF_INC)
OPDEF(JSOP_INCELEM, 43, "incelem", NULL, 1, 2, 1, 10, JOF_BYTE |JOF_ELEM|JOF_INC)
OPDEF(JSOP_DECNAME, 44, "decname", NULL, 3, 0, 1, 10, JOF_CONST|JOF_NAME|JOF_DEC)
OPDEF(JSOP_DECPROP, 45, "decprop", NULL, 3, 1, 1, 10, JOF_CONST|JOF_PROP|JOF_DEC)
OPDEF(JSOP_DECELEM, 46, "decelem", NULL, 1, 2, 1, 10, JOF_BYTE |JOF_ELEM|JOF_DEC)
OPDEF(JSOP_NAMEINC, 47, "nameinc", NULL, 3, 0, 1, 10, JOF_CONST|JOF_NAME|JOF_INC|JOF_POST)
OPDEF(JSOP_PROPINC, 48, "propinc", NULL, 3, 1, 1, 10, JOF_CONST|JOF_PROP|JOF_INC|JOF_POST)
OPDEF(JSOP_ELEMINC, 49, "eleminc", NULL, 1, 2, 1, 10, JOF_BYTE |JOF_ELEM|JOF_INC|JOF_POST)
OPDEF(JSOP_NAMEDEC, 50, "namedec", NULL, 3, 0, 1, 10, JOF_CONST|JOF_NAME|JOF_DEC|JOF_POST)
OPDEF(JSOP_PROPDEC, 51, "propdec", NULL, 3, 1, 1, 10, JOF_CONST|JOF_PROP|JOF_DEC|JOF_POST)
OPDEF(JSOP_ELEMDEC, 52, "elemdec", NULL, 1, 2, 1, 10, JOF_BYTE |JOF_ELEM|JOF_DEC|JOF_POST)
OPDEF(JSOP_GETPROP, 53, "getprop", NULL, 3, 1, 1, 11, JOF_CONST|JOF_PROP)
OPDEF(JSOP_SETPROP, 54, "setprop", NULL, 3, 2, 1, 1, JOF_CONST|JOF_PROP|JOF_SET)
OPDEF(JSOP_GETELEM, 55, "getelem", NULL, 1, 2, 1, 11, JOF_BYTE |JOF_ELEM)
OPDEF(JSOP_SETELEM, 56, "setelem", NULL, 1, 3, 1, 1, JOF_BYTE |JOF_ELEM|JOF_SET)
OPDEF(JSOP_PUSHOBJ, 57, "pushobj", NULL, 1, 0, 1, 0, JOF_BYTE)
OPDEF(JSOP_CALL, 58, "call", NULL, 3, -1, 1, 11, JOF_UINT16)
OPDEF(JSOP_NAME, 59, "name", NULL, 3, 0, 1, 12, JOF_CONST|JOF_NAME)
OPDEF(JSOP_NUMBER, 60, "number", NULL, 3, 0, 1, 12, JOF_CONST)
OPDEF(JSOP_STRING, 61, "string", NULL, 3, 0, 1, 12, JOF_CONST)
OPDEF(JSOP_ZERO, 62, "zero", "0", 1, 0, 1, 12, JOF_BYTE)
OPDEF(JSOP_ONE, 63, "one", "1", 1, 0, 1, 12, JOF_BYTE)
OPDEF(JSOP_NULL, 64, js_null_str, js_null_str, 1, 0, 1, 12, JOF_BYTE)
OPDEF(JSOP_THIS, 65, js_this_str, js_this_str, 1, 0, 1, 12, JOF_BYTE)
OPDEF(JSOP_FALSE, 66, js_false_str, js_false_str, 1, 0, 1, 12, JOF_BYTE)
OPDEF(JSOP_TRUE, 67, js_true_str, js_true_str, 1, 0, 1, 12, JOF_BYTE)
OPDEF(JSOP_OR, 68, "or", NULL, 3, 1, 0, 0, JOF_JUMP)
OPDEF(JSOP_AND, 69, "and", NULL, 3, 1, 0, 0, JOF_JUMP)
/* The switch bytecodes have variable length. */
OPDEF(JSOP_TABLESWITCH, 70, "tableswitch", NULL, -1, 1, 0, 0, JOF_TABLESWITCH)
OPDEF(JSOP_LOOKUPSWITCH, 71, "lookupswitch", NULL, -1, 1, 0, 0, JOF_LOOKUPSWITCH)
/* New, infallible/transitive identity ops. */
OPDEF(JSOP_NEW_EQ, 72, "eq", NULL, 1, 2, 1, 5, JOF_BYTE)
OPDEF(JSOP_NEW_NE, 73, "ne", NULL, 1, 2, 1, 5, JOF_BYTE)
/* Lexical closure constructor. */
OPDEF(JSOP_CLOSURE, 74, "closure", NULL, 3, 0, 1, 0, JOF_CONST)
/* Export and import ops. */
OPDEF(JSOP_EXPORTALL, 75, "exportall", NULL, 1, 0, 0, 0, JOF_BYTE)
OPDEF(JSOP_EXPORTNAME,76, "exportname", NULL, 3, 0, 0, 0, JOF_CONST|JOF_NAME)
OPDEF(JSOP_IMPORTALL, 77, "importall", NULL, 1, 1, 0, 0, JOF_BYTE)
OPDEF(JSOP_IMPORTPROP,78, "importprop", NULL, 3, 1, 0, 0, JOF_CONST|JOF_PROP|JOF_IMPORT)
OPDEF(JSOP_IMPORTELEM,79, "importelem", NULL, 3, 2, 0, 0, JOF_BYTE |JOF_ELEM|JOF_IMPORT)
/* Push object literal. */
OPDEF(JSOP_OBJECT, 80, "object", NULL, 3, 0, 1, 12, JOF_CONST)
/* Pop value and discard it. */
OPDEF(JSOP_POP, 81, "pop", NULL, 1, 1, 0, 0, JOF_BYTE)
/* Convert value to number, for unary +. */
OPDEF(JSOP_POS, 82, "pos", "+", 1, 1, 1, 10, JOF_BYTE)
/* Trap into debugger for breakpoint, etc. */
OPDEF(JSOP_TRAP, 83, "trap", NULL, 1, 0, 0, 0, JOF_BYTE)
/* Fast get/set ops for function arguments and local variables. */
OPDEF(JSOP_GETARG, 84, "getarg", NULL, 3, 0, 1, 12, JOF_QARG |JOF_NAME)
OPDEF(JSOP_SETARG, 85, "setarg", NULL, 3, 1, 1, 1, JOF_QARG |JOF_NAME|JOF_SET)
OPDEF(JSOP_GETVAR, 86, "getvar", NULL, 3, 0, 1, 12, JOF_QVAR |JOF_NAME)
OPDEF(JSOP_SETVAR, 87, "setvar", NULL, 3, 1, 1, 1, JOF_QVAR |JOF_NAME|JOF_SET)
/* Push unsigned 16-bit int constant. */
OPDEF(JSOP_UINT16, 88, "uint16", NULL, 3, 0, 1, 12, JOF_UINT16)
/* Object and array literal support. */
OPDEF(JSOP_NEWINIT, 89, "newinit", NULL, 1, 2, 1, 10, JOF_BYTE)
OPDEF(JSOP_ENDINIT, 90, "endinit", NULL, 1, 0, 0, 0, JOF_BYTE)
OPDEF(JSOP_INITPROP, 91, "initprop", NULL, 3, 1, 0, 0, JOF_CONST|JOF_PROP)
OPDEF(JSOP_INITELEM, 92, "initelem", NULL, 1, 2, 0, 0, JOF_BYTE |JOF_ELEM)
OPDEF(JSOP_DEFSHARP, 93, "defsharp", NULL, 3, 0, 0, 0, JOF_UINT16)
OPDEF(JSOP_USESHARP, 94, "usesharp", NULL, 3, 0, 1, 0, JOF_UINT16)
/* Fast inc/dec ops for args and local vars. */
OPDEF(JSOP_INCARG, 95, "incarg", NULL, 3, 0, 1, 10, JOF_QARG |JOF_NAME|JOF_INC)
OPDEF(JSOP_INCVAR, 96, "incvar", NULL, 3, 0, 1, 10, JOF_QVAR |JOF_NAME|JOF_INC)
OPDEF(JSOP_DECARG, 97, "decarg", NULL, 3, 0, 1, 10, JOF_QARG |JOF_NAME|JOF_DEC)
OPDEF(JSOP_DECVAR, 98, "decvar", NULL, 3, 0, 1, 10, JOF_QVAR |JOF_NAME|JOF_DEC)
OPDEF(JSOP_ARGINC, 99, "arginc", NULL, 3, 0, 1, 10, JOF_QARG |JOF_NAME|JOF_INC|JOF_POST)
OPDEF(JSOP_VARINC, 100,"varinc", NULL, 3, 0, 1, 10, JOF_QVAR |JOF_NAME|JOF_INC|JOF_POST)
OPDEF(JSOP_ARGDEC, 101,"argdec", NULL, 3, 0, 1, 10, JOF_QARG |JOF_NAME|JOF_DEC|JOF_POST)
OPDEF(JSOP_VARDEC, 102,"vardec", NULL, 3, 0, 1, 10, JOF_QVAR |JOF_NAME|JOF_DEC|JOF_POST)
/* ECMA-compliant for/in ops. */
OPDEF(JSOP_TOOBJECT, 103,"toobject", NULL, 1, 1, 1, 0, JOF_BYTE)
OPDEF(JSOP_FORNAME2, 104,"forname2", NULL, 3, 0, 1, 0, JOF_CONST|JOF_NAME|JOF_SET|JOF_FOR2)
OPDEF(JSOP_FORPROP2, 105,"forprop2", NULL, 3, 1, 1, 0, JOF_CONST|JOF_PROP|JOF_SET|JOF_FOR2)
OPDEF(JSOP_FORELEM2, 106,"forelem2", NULL, 1, 2, 1, 0, JOF_BYTE |JOF_ELEM|JOF_SET|JOF_FOR2)
OPDEF(JSOP_POP2, 107,"pop2", NULL, 1, 2, 0, 0, JOF_BYTE)
/* ECMA-complaint assignment ops. */
OPDEF(JSOP_BINDNAME, 108,"bindname", NULL, 3, 0, 1, 0, JOF_CONST|JOF_NAME)
OPDEF(JSOP_SETNAME2, 109,"setname2", NULL, 3, 2, 1, 1, JOF_CONST|JOF_NAME|JOF_SET)
/* Exception handling ops. */
OPDEF(JSOP_THROW, 110,"throw", NULL, 1, 1, 0, 0, JOF_BYTE)
/* 'in' and 'instanceof' ops. */
OPDEF(JSOP_IN, 111,js_in_str, js_in_str, 1, 2, 1, 6, JOF_BYTE)
OPDEF(JSOP_INSTANCEOF,112,js_instanceof_str,js_instanceof_str,1,2,1,6,JOF_BYTE)
/* debugger op */
OPDEF(JSOP_DEBUGGER, 113,"debugger", NULL, 1, 0, 0, 0, JOF_BYTE)
/* gosub/retsub for finally handling */
OPDEF(JSOP_GOSUB, 114,"gosub", NULL, 3, 0, 1, 0, JOF_JUMP)
OPDEF(JSOP_RETSUB, 115,"retsub", NULL, 1, 1, 0, 0, JOF_BYTE)
/* more exception handling ops */
OPDEF(JSOP_EXCEPTION, 116,"exception", NULL, 1, 0, 1, 0, JOF_BYTE)
OPDEF(JSOP_SETSP, 117,"setsp", NULL, 3, 0, 0, 0, JOF_UINT16)
/*
* ECMA-compliant switch statement ops.
* CONDSWITCH is a decompilable NOP; CASE is ===, POP, jump if true, re-push
* lval if false; and DEFAULT is POP lval and GOTO.
*/
OPDEF(JSOP_CONDSWITCH,118,"condswitch", NULL, 1, 0, 0, 0, JOF_BYTE)
OPDEF(JSOP_CASE, 119,"case", NULL, 3, 1, 0, 0, JOF_JUMP)
OPDEF(JSOP_DEFAULT, 120,"default", NULL, 3, 1, 0, 0, JOF_JUMP)

View File

@@ -1,76 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsosdep_h___
#define jsosdep_h___
/*
* OS (and machine, and compiler XXX) dependent information.
*/
#ifdef XP_PC
#ifdef _WIN32
#include "os/win32.h"
#else
#include "os/win16.h"
#endif
#endif /* XP_PC */
#ifdef XP_MAC
#include "jsmacos.h"
#endif
#ifdef XP_UNIX
/*
* Get OS specific header information.
*/
#if defined(AIXV3)
#include "os/aix.h"
#elif defined(BSDI)
#include "os/bsdi.h"
#elif defined(HPUX)
#include "os/hpux.h"
#elif defined(IRIX)
#include "os/irix.h"
#elif defined(LINUX)
#include "os/linux.h"
#elif defined(OSF1)
#include "os/osf1.h"
#elif defined(SCO)
#include "os/scoos.h"
#elif defined(SOLARIS)
#include "os/solaris.h"
#elif defined(SUNOS4)
#include "os/sunos.h"
#elif defined(UNIXWARE)
#include "os/unixware.h"
#endif
#endif /* XP_UNIX */
#endif /* jsosdep_h___ */

View File

@@ -1,91 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* This section typedefs the old 'native' types to the new PR<type>s.
* These definitions are scheduled to be eliminated at the earliest
* possible time. The NSPR API is implemented and documented using
* the new definitions.
*/
#ifndef PROTYPES_H
#define PROTYPES_H
/* SVR4 typedef of uint is commonly found on UNIX machines. */
#ifndef XP_UNIX
typedef JSUintn uint;
#endif
typedef JSUintn uintn;
typedef JSUint64 uint64;
#if !defined(XP_MAC) && !defined(_WIN32) && !defined(XP_OS2)
typedef JSUint32 uint32;
#else
typedef unsigned long uint32;
#endif
typedef JSUint16 uint16;
typedef JSUint8 uint8;
#ifndef _XP_Core_
typedef JSIntn intn;
#endif
/*
* On AIX 4.3, sys/inttypes.h (which is included by sys/types.h, a very
* common header file) defines the types int8, int16, int32, and int64.
* So we don't define these four types here to avoid conflicts in case
* the code also includes sys/types.h.
*/
#ifdef AIX4_3
#include <sys/inttypes.h>
#else
typedef JSInt64 int64;
/* /usr/include/model.h on HP-UX defines int8, int16, and int32 */
#ifdef HPUX
#include <model.h>
#else
#if !defined(WIN32) || !defined(_WINSOCK2API_) /* defines its own "int32" */
#if !defined(XP_MAC) && !defined(_WIN32) && !defined(XP_OS2)
typedef JSInt32 int32;
#else
typedef long int32;
#endif
#endif
typedef JSInt16 int16;
typedef JSInt8 int8;
#endif /* HPUX */
#endif /* AIX4_3 */
typedef JSFloat64 float64;
/* Re: jsbit.h */
#define TEST_BIT JS_TEST_BIT
#define SET_BIT JS_SET_BIT
#define CLEAR_BIT JS_CLEAR_BIT
#ifdef XP_MAC
#ifndef TRUE /* Mac standard is lower case true */
#define TRUE 1
#endif
#ifndef FALSE /* Mac standard is lower case false */
#define FALSE 0
#endif
#endif
#endif /* !defined(PROTYPES_H) */

File diff suppressed because it is too large Load Diff

View File

@@ -1,256 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsparse_h___
#define jsparse_h___
/*
* JS parser definitions.
*/
#include "jsprvtd.h"
#include "jspubtd.h"
#include "jsscan.h"
JS_BEGIN_EXTERN_C
/*
* Parsing builds a tree of nodes that directs code generation. This tree is
* not a concrete syntax tree in all respects (for example, || and && are left
* associative, but (A && B && C) translates into the right-associated tree
* <A && <B && C>> so that code generation can emit a left-associative branch
* around <B && C> when A is false). Nodes are labeled by token type, with a
* JSOp secondary label when needed:
*
* Label Variant Members
* ----- ------- -------
* <Definitions>
* TOK_FUNCTION func pn_fun: function, contains arg and var properties
* pn_body: TOK_LC node for function body
* NB: We define or create the function object at
* parse (not emit) time, in order to specialize arg
* and var bytecodes early.
* pn_tryCount: of try statements in function
*
* <Statements>
* TOK_LC list pn_head: list of pn_count statements
* TOK_EXPORT list pn_head: list of pn_count TOK_NAMEs or one TOK_STAR
* (which is not a multiply node)
* TOK_IMPORT list pn_head: list of pn_count sub-trees of the form
* a.b.*, a[b].*, a.*, a.b, or a[b] -- but never a.
* Each member is expressed with TOK_DOT or TOK_LB.
* Each sub-tree's root node has a pn_op in the set
* JSOP_IMPORT{ALL,PROP,ELEM}
* TOK_IF ternary pn_kid1: cond, pn_kid2: then, pn_kid3: else or null
* TOK_SWITCH binary pn_left: discriminant
* pn_right: list of TOK_CASE nodes, with at most one
* TOK_DEFAULT node
* TOK_CASE, binary pn_left: case expr or null if TOK_DEFAULT
* TOK_DEFAULT pn_right: TOK_LC node for this case's statements
* TOK_WHILE binary pn_left: cond, pn_right: body
* TOK_DO binary pn_left: body, pn_right: cond
* TOK_FOR binary pn_left: either
* for/in loop: a binary TOK_IN node with
* pn_left: TOK_VAR or TOK_NAME to left of 'in'
* pn_right: object expr to right of 'in'
* for(;;) loop: a ternary TOK_RESERVED node with
* pn_kid1: init expr before first ';'
* pn_kid2: cond expr before second ';'
* pn_kid3: update expr after second ';'
* any kid may be null
* pn_right: body
* TOK_THROW unary pn_op: JSOP_THROW, pn_kid: exception
* TOK_BREAK name pn_atom: label or null
* TOK_CONTINUE name pn_atom: label or null
* TOK_WITH binary pn_left: head expr, pn_right: body
* TOK_VAR list pn_head: list of pn_count TOK_NAME nodes
* each name node has pn_atom: variable name and
* pn_expr: initializer or null
* TOK_RETURN unary pn_kid: return expr or null
* TOK_SEMI unary pn_kid: expr or null statement
* TOK_COLON name pn_atom: label, pn_expr: labeled statement
*
* <Expressions>
* TOK_COMMA list pn_head: list of pn_count comma-separated exprs
* TOK_ASSIGN binary pn_left: lvalue, pn_right: rvalue
* TOK_HOOK ternary pn_kid1: cond, pn_kid2: then, pn_kid3: else
* TOK_OR binary pn_left: first in || chain, pn_right: rest of chain
* TOK_AND binary pn_left: first in && chain, pn_right: rest of chain
* TOK_BITOR binary pn_left: left-assoc | expr, pn_right: ^ expr
* TOK_BITXOR binary pn_left: left-assoc ^ expr, pn_right: & expr
* TOK_BITAND binary pn_left: left-assoc & expr, pn_right: EQ expr
* TOK_EQOP binary pn_left: left-assoc EQ expr, pn_right: REL expr
* pn_op: JSOP_EQ, JSOP_NE, JSOP_NEW_EQ, JSOP_NEW_NE
* TOK_RELOP binary pn_left: left-assoc REL expr, pn_right: SH expr
* pn_op: JSOP_LT, JSOP_LE, JSOP_GT, JSOP_GE
* TOK_SHOP binary pn_left: left-assoc SH expr, pn_right: ADD expr
* pn_op: JSOP_LSH, JSOP_RSH, JSOP_URSH
* TOK_PLUS, binary pn_left: left-assoc ADD expr, pn_right: MUL expr
* TOK_MINUS pn_op: JSOP_ADD, JSOP_SUB
* TOK_STAR, binary pn_left: left-assoc MUL expr, pn_right: UNARY expr
* TOK_DIVOP pn_op: JSOP_MUL, JSOP_DIV, JSOP_MOD
* TOK_UNARYOP unary pn_kid: UNARY expr, pn_op: JSOP_NEG, JSOP_POS,
* JSOP_NOT, JSOP_BITNOT, JSOP_TYPEOF, JSOP_VOID
* TOK_INC, unary pn_kid: MEMBER expr
* TOK_DEC pn_num: arg or local var slot if non-negative
* TOK_NEW list pn_head: list of ctor, arg1, arg2, ... argN
* pn_count: 1 + N (where N is number of args)
* ctor is a MEMBER expr
* TOK_DELETE unary pn_kid: MEMBER expr
* TOK_DOT name pn_expr: MEMBER expr to left of .
* pn_atom: name to right of .
* TOK_LB binary pn_left: MEMBER expr to left of [
* pn_right: expr between [ and ]
* TOK_LP list pn_head: list of call, arg1, arg2, ... argN
* pn_count: 1 + N (where N is number of args)
* call is a MEMBER expr naming a callable object
* TOK_RB list pn_head: list of pn_count array element exprs
* [,,] holes are represented by TOK_COMMA nodes
* #n=[...] produces TOK_DEFSHARP at head of list
* pn_extra: true if extra comma at end
* TOK_RC list pn_head: list of pn_count TOK_COLON nodes where
* each has pn_left: property id, pn_right: value
* #n={...} produces TOK_DEFSHARP at head of list
* TOK_DEFSHARP unary pn_num: jsint value of n in #n=
* pn_kid: null for #n=[...] and #n={...}, primary
* if #n=primary for function, paren, name, object
* literal expressions
* TOK_USESHARP nullary pn_num: jsint value of n in #n#
* TOK_RP unary pn_kid: parenthesized expression
* TOK_NAME, name pn_atom: name, string, or object atom
* TOK_STRING, pn_op: JSOP_NAME, JSOP_STRING, or JSOP_OBJECT
* TOK_OBJECT pn_op may be *ARG or *VAR with pn_slot >= 0
* TOK_NUMBER dval pn_dval: double value of numeric literal
* TOK_PRIMARY nullary pn_op: JSOp bytecode
*/
typedef enum JSParseNodeArity {
PN_FUNC = -3,
PN_LIST = -2,
PN_TERNARY = 3,
PN_BINARY = 2,
PN_UNARY = 1,
PN_NAME = -1,
PN_NULLARY = 0
} JSParseNodeArity;
struct JSParseNode {
JSTokenType pn_type;
JSTokenPos pn_pos;
JSOp pn_op;
ptrdiff_t pn_offset; /* first generated bytecode offset */
JSParseNodeArity pn_arity;
union {
struct { /* TOK_FUNCTION node */
JSFunction *fun; /* function object private data */
JSParseNode *body; /* TOK_LC list of statements */
uint32 tryCount; /* try statement count */
} func;
struct { /* list of next-linked nodes */
JSParseNode *head; /* first node in list */
JSParseNode **tail; /* ptr to ptr to last node in list */
uint32 count; /* number of nodes in list */
JSBool extra; /* extra comma flag for [1,2,,] */
} list;
struct { /* ternary: if, for(;;), ?: */
JSParseNode *kid1; /* condition, discriminant, etc. */
JSParseNode *kid2; /* then-part, case list, etc. */
JSParseNode *kid3; /* else-part, default case, etc. */
} ternary;
struct { /* two kids if binary */
JSParseNode *left;
JSParseNode *right;
jsval val; /* switch case value */
} binary;
struct { /* one kid if unary */
JSParseNode *kid;
jsint num; /* -1 or arg or local/sharp var num */
} unary;
struct { /* name, labeled statement, etc. */
JSAtom *atom; /* name or label atom, null if slot */
JSParseNode *expr; /* object or initializer */
jsint slot; /* -1 or arg or local var slot */
} name;
jsdouble dval; /* aligned numeric literal value */
} pn_u;
JSParseNode *pn_next; /* here to align dval and pn_u on RISCs */
};
#define pn_fun pn_u.func.fun
#define pn_body pn_u.func.body
#define pn_tryCount pn_u.func.tryCount
#define pn_head pn_u.list.head
#define pn_tail pn_u.list.tail
#define pn_count pn_u.list.count
#define pn_extra pn_u.list.extra
#define pn_kid1 pn_u.ternary.kid1
#define pn_kid2 pn_u.ternary.kid2
#define pn_kid3 pn_u.ternary.kid3
#define pn_left pn_u.binary.left
#define pn_right pn_u.binary.right
#define pn_val pn_u.binary.val
#define pn_kid pn_u.unary.kid
#define pn_num pn_u.unary.num
#define pn_atom pn_u.name.atom
#define pn_expr pn_u.name.expr
#define pn_slot pn_u.name.slot
#define pn_dval pn_u.dval
/*
* Compute a pointer to the last JSParseNode element in a singly-linked list.
* NB: list must be non-empty for correct PN_LAST usage!
*/
#define PN_LAST(list) \
((JSParseNode *)((char *)(list)->pn_tail - offsetof(JSParseNode, pn_next)))
#define PN_INIT_LIST(list) \
JS_BEGIN_MACRO \
(list)->pn_head = NULL; \
(list)->pn_tail = &(list)->pn_head; \
(list)->pn_count = 0; \
JS_END_MACRO
#define PN_INIT_LIST_1(list, pn) \
JS_BEGIN_MACRO \
(list)->pn_head = (pn); \
(list)->pn_tail = &(pn)->pn_next; \
(list)->pn_count = 1; \
JS_END_MACRO
#define PN_APPEND(list, pn) \
JS_BEGIN_MACRO \
*(list)->pn_tail = (pn); \
(list)->pn_tail = &(pn)->pn_next; \
(list)->pn_count++; \
JS_END_MACRO
/* New names to connote code generation in addition to parse tree gen. */
#define js_CompileTokenStream js_Parse
#define js_CompileFunctionBody js_ParseFunctionBody
extern JS_FRIEND_API(JSBool)
js_CompileTokenStream(JSContext *cx, JSObject *chain, JSTokenStream *ts,
JSCodeGenerator *cg);
extern JSBool
js_CompileFunctionBody(JSContext *cx, JSTokenStream *ts, JSFunction *fun);
/* XXXbe expose js_Parse{TokenStream,FunctionBody} that return trees? */
extern JSBool
js_FoldConstants(JSContext *cx, JSParseNode *pn);
JS_END_EXTERN_C
#endif /* jsparse_h___ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,128 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsprf_h___
#define jsprf_h___
/*
** API for PR printf like routines. Supports the following formats
** %d - decimal
** %u - unsigned decimal
** %x - unsigned hex
** %X - unsigned uppercase hex
** %o - unsigned octal
** %hd, %hu, %hx, %hX, %ho - 16-bit versions of above
** %ld, %lu, %lx, %lX, %lo - 32-bit versions of above
** %lld, %llu, %llx, %llX, %llo - 64 bit versions of above
** %s - string
** %c - character
** %p - pointer (deals with machine dependent pointer size)
** %f - float
** %g - float
*/
#include "jstypes.h"
#include <stdio.h>
#include <stdarg.h>
JS_BEGIN_EXTERN_C
/*
** sprintf into a fixed size buffer. Guarantees that a NUL is at the end
** of the buffer. Returns the length of the written output, NOT including
** the NUL, or (JSUint32)-1 if an error occurs.
*/
EXTERN(JSUint32) JS_snprintf(char *out, JSUint32 outlen, const char *fmt, ...);
/*
** sprintf into a malloc'd buffer. Return a pointer to the malloc'd
** buffer on success, NULL on failure. Call "JS_smprintf_free" to release
** the memory returned.
*/
EXTERN(char*) JS_smprintf(const char *fmt, ...);
/*
** Free the memory allocated, for the caller, by JS_smprintf
*/
EXTERN(void) JS_smprintf_free(char *mem);
/*
** "append" sprintf into a malloc'd buffer. "last" is the last value of
** the malloc'd buffer. sprintf will append data to the end of last,
** growing it as necessary using realloc. If last is NULL, JS_sprintf_append
** will allocate the initial string. The return value is the new value of
** last for subsequent calls, or NULL if there is a malloc failure.
*/
EXTERN(char*) JS_sprintf_append(char *last, const char *fmt, ...);
/*
** sprintf into a function. The function "f" is called with a string to
** place into the output. "arg" is an opaque pointer used by the stuff
** function to hold any state needed to do the storage of the output
** data. The return value is a count of the number of characters fed to
** the stuff function, or (JSUint32)-1 if an error occurs.
*/
typedef JSIntn (*JSStuffFunc)(void *arg, const char *s, JSUint32 slen);
EXTERN(JSUint32) JS_sxprintf(JSStuffFunc f, void *arg, const char *fmt, ...);
/*
** va_list forms of the above.
*/
EXTERN(JSUint32) JS_vsnprintf(char *out, JSUint32 outlen, const char *fmt, va_list ap);
EXTERN(char*) JS_vsmprintf(const char *fmt, va_list ap);
EXTERN(char*) JS_vsprintf_append(char *last, const char *fmt, va_list ap);
EXTERN(JSUint32) JS_vsxprintf(JSStuffFunc f, void *arg, const char *fmt, va_list ap);
/*
***************************************************************************
** FUNCTION: JS_sscanf
** DESCRIPTION:
** JS_sscanf() scans the input character string, performs data
** conversions, and stores the converted values in the data objects
** pointed to by its arguments according to the format control
** string.
**
** JS_sscanf() behaves the same way as the sscanf() function in the
** Standard C Library (stdio.h), with the following exceptions:
** - JS_sscanf() handles the NSPR integer and floating point types,
** such as JSInt16, JSInt32, JSInt64, and JSFloat64, whereas
** sscanf() handles the standard C types like short, int, long,
** and double.
** - JS_sscanf() has no multibyte character support, while sscanf()
** does.
** INPUTS:
** const char *buf
** a character string holding the input to scan
** const char *fmt
** the format control string for the conversions
** ...
** variable number of arguments, each of them is a pointer to
** a data object in which the converted value will be stored
** OUTPUTS: none
** RETURNS: JSInt32
** The number of values converted and stored.
** RESTRICTIONS:
** Multibyte characters in 'buf' or 'fmt' are not allowed.
***************************************************************************
*/
EXTERN(JSInt32) JS_sscanf(const char *buf, const char *fmt, ...);
JS_END_EXTERN_C
#endif /* jsprf_h___ */

View File

@@ -1,131 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef JSplhash_h___
#define JSplhash_h___
/*
* API to portable hash table code.
*/
#include <stddef.h>
#include <stdio.h>
#include "jsprtypes.h"
JSPR_BEGIN_EXTERN_C
typedef struct JSPRHashEntry JSPRHashEntry;
typedef struct JSPRHashTable JSPRHashTable;
typedef JSPRUint32 JSPRHashNumber;
#define JSPR_HASH_BITS 32
typedef JSPRHashNumber (JSCALLBACK *JSPRHashFunction)(const void *key);
typedef JSPRIntn (JSCALLBACK *JSPRHashComparator)(const void *v1, const void *v2);
typedef JSPRIntn (JSCALLBACK *JSPRHashEnumerator)(JSPRHashEntry *he, JSPRIntn i, void *arg);
/* Flag bits in JSPRHashEnumerator's return value */
#define HT_ENUMERATE_NEXT 0 /* continue enumerating entries */
#define HT_ENUMERATE_STOP 1 /* stop enumerating entries */
#define HT_ENUMERATE_REMOVE 2 /* remove and free the current entry */
#define HT_ENUMERATE_UNHASH 4 /* just unhash the current entry */
typedef struct JSPRHashAllocOps {
void * (JSCALLBACK *allocTable)(void *pool, JSPRSize size);
void (JSCALLBACK *freeTable)(void *pool, void *item);
JSPRHashEntry * (JSCALLBACK *allocEntry)(void *pool, const void *key);
void (JSCALLBACK *freeEntry)(void *pool, JSPRHashEntry *he, JSPRUintn flag);
} JSPRHashAllocOps;
#define HT_FREE_VALUE 0 /* just free the entry's value */
#define HT_FREE_ENTRY 1 /* free value and entire entry */
struct JSPRHashEntry {
JSPRHashEntry *next; /* hash chain linkage */
JSPRHashNumber keyHash; /* key hash function result */
const void *key; /* ptr to opaque key */
void *value; /* ptr to opaque value */
};
struct JSPRHashTable {
JSPRHashEntry **buckets; /* vector of hash buckets */
JSPRUint32 nentries; /* number of entries in table */
JSPRUint32 shift; /* multiplicative hash shift */
JSPRHashFunction keyHash; /* key hash function */
JSPRHashComparator keyCompare; /* key comparison function */
JSPRHashComparator valueCompare; /* value comparison function */
JSPRHashAllocOps *allocOps; /* allocation operations */
void *allocPriv; /* allocation private data */
#ifdef HASHMETER
JSPRUint32 nlookups; /* total number of lookups */
JSPRUint32 nsteps; /* number of hash chains traversed */
JSPRUint32 ngrows; /* number of table expansions */
JSPRUint32 nshrinks; /* number of table contractions */
#endif
};
/*
* Create a new hash table.
* If allocOps is null, use default allocator ops built on top of malloc().
*/
JSEXTERN(JSPRHashTable *)
JSPR_NewHashTable(JSPRUint32 n, JSPRHashFunction keyHash,
JSPRHashComparator keyCompare, JSPRHashComparator valueCompare,
JSPRHashAllocOps *allocOps, void *allocPriv);
JSEXTERN(void)
JSPR_HashTableDestroy(JSPRHashTable *ht);
/* Low level access methods */
JSEXTERN(JSPRHashEntry **)
JSPR_HashTableRawLookup(JSPRHashTable *ht, JSPRHashNumber keyHash, const void *key);
JSEXTERN(JSPRHashEntry *)
JSPR_HashTableRawAdd(JSPRHashTable *ht, JSPRHashEntry **hep, JSPRHashNumber keyHash,
const void *key, void *value);
JSEXTERN(void)
JSPR_HashTableRawRemove(JSPRHashTable *ht, JSPRHashEntry **hep, JSPRHashEntry *he);
/* Higher level access methods */
JSEXTERN(JSPRHashEntry *)
JSPR_HashTableAdd(JSPRHashTable *ht, const void *key, void *value);
JSEXTERN(JSPRBool)
JSPR_HashTableRemove(JSPRHashTable *ht, const void *key);
JSEXTERN(JSPRIntn)
JSPR_HashTableEnumerateEntries(JSPRHashTable *ht, JSPRHashEnumerator f, void *arg);
JSEXTERN(void *)
JSPR_HashTableLookup(JSPRHashTable *ht, const void *key);
JSEXTERN(JSPRIntn)
JSPR_HashTableDump(JSPRHashTable *ht, JSPRHashEnumerator dump, FILE *fp);
/* General-purpose C string hash function. */
JSEXTERN(JSPRHashNumber)
JSPR_HashString(const void *key);
/* Compare strings using strcmp(), return true if equal. */
JSEXTERN(int)
JSPR_CompareStrings(const void *v1, const void *v2);
/* Stub function just returns v1 == v2 */
JSEXTERN(JSPRIntn)
JSPR_CompareValues(const void *v1, const void *v2);
JSPR_END_EXTERN_C
#endif /* JSplhash_h___ */

View File

@@ -1,148 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsprvtd_h___
#define jsprvtd_h___
/*
* JS private typename definitions.
*
* This header is included only in other .h files, for convenience and for
* simplicity of type naming. The alternative for structures is to use tags,
* which are named the same as their typedef names (legal in C/C++, and less
* noisy than suffixing the typedef name with "Struct" or "Str"). Instead,
* all .h files that include this file may use the same typedef name, whether
* declaring a pointer to struct type, or defining a member of struct type.
*
* A few fundamental scalar types are defined here too. Neither the scalar
* nor the struct typedefs should change much, therefore the nearly-global
* make dependency induced by this file should not prove painful.
*/
#include "jspubtd.h"
/* Scalar typedefs. */
typedef uint8 jsbytecode;
typedef uint8 jssrcnote;
typedef uint32 jsatomid;
/* Struct typedefs. */
typedef struct JSCodeGenerator JSCodeGenerator;
typedef struct JSGCThing JSGCThing;
typedef struct JSParseNode JSParseNode;
typedef struct JSSharpObjectMap JSSharpObjectMap;
typedef struct JSToken JSToken;
typedef struct JSTokenPos JSTokenPos;
typedef struct JSTokenPtr JSTokenPtr;
typedef struct JSTokenStream JSTokenStream;
typedef struct JSTreeContext JSTreeContext;
typedef struct JSTryNote JSTryNote;
/* Friend "Advanced API" typedefs. */
typedef struct JSAtom JSAtom;
typedef struct JSAtomList JSAtomList;
typedef struct JSAtomListElement JSAtomListElement;
typedef struct JSAtomMap JSAtomMap;
typedef struct JSAtomState JSAtomState;
typedef struct JSCodeSpec JSCodeSpec;
typedef struct JSPrinter JSPrinter;
typedef struct JSRegExp JSRegExp;
typedef struct JSRegExpStatics JSRegExpStatics;
typedef struct JSScope JSScope;
typedef struct JSScopeOps JSScopeOps;
typedef struct JSScopeProperty JSScopeProperty;
typedef struct JSStackFrame JSStackFrame;
typedef struct JSSubString JSSubString;
typedef struct JSSymbol JSSymbol;
/* "Friend" types used by jscntxt.h and jsdbgapi.h. */
typedef enum JSTrapStatus {
JSTRAP_ERROR,
JSTRAP_CONTINUE,
JSTRAP_RETURN,
JSTRAP_LIMIT
} JSTrapStatus;
#ifndef CRT_CALL
#ifdef XP_OS2
#define CRT_CALL _Optlink
#else
#define CRT_CALL
#endif
#endif
typedef JSTrapStatus
(* CRT_CALL JSTrapHandler)(JSContext *cx, JSScript *script, jsbytecode *pc,
jsval *rval, void *closure);
typedef JSBool
(* CRT_CALL JSWatchPointHandler)(JSContext *cx, JSObject *obj, jsval id,
jsval old, jsval *newp, void *closure);
/* called just after script creation */
typedef void
(* CRT_CALL JSNewScriptHook)(JSContext *cx,
const char *filename, /* URL of script */
uintN lineno, /* line script starts */
JSScript *script,
JSFunction *fun,
void *callerdata);
/* called just before script destruction */
typedef void
(* CRT_CALL JSDestroyScriptHook)(JSContext *cx,
JSScript *script,
void *callerdata);
typedef void
(* CRT_CALL JSSourceHandler)(const char *filename, uintN lineno,
jschar *str, size_t length,
void **listenerTSData, void *closure);
/*
* This hook captures high level script execution and function calls
* (JS or native).
* It is used by JS_SetExecuteHook to hook top level scripts and by
* JS_SetCallHook to hook function calls.
* It will get called twice per script or function call:
* just before execution begins and just after it finishes. In both cases
* the 'current' frame is that of the executing code.
*
* The 'before' param is JS_TRUE for the hook invocation before the execution
* and JS_FALSE for the invocation after the code has run.
*
* The 'ok' param is significant only on the post execution invocation to
* signify whether or not the code completed 'normally'.
*
* The 'closure' param is as passed to JS_SetExecuteHook or JS_SetCallHook
* for the 'before'invocation, but is whatever value is returned from that
* invocation for the 'after' invocation. Thus, the hook implementor *could*
* allocate a stucture in the 'before' invocation and return a pointer
* to that structure. The pointer would then be handed to the hook for
* the 'after' invocation. Alternately, the 'before' could just return the
* same value as in 'closure' to cause the 'after' invocation to be called
* with the same 'closure' value as the 'before'.
*
* Returning NULL in the 'before' hook will cause the 'after' hook to
* NOT be called.
*/
typedef void *
(* CRT_CALL JSInterpreterHook)(JSContext *cx, JSStackFrame *fp, JSBool before,
JSBool *ok, void *closure);
#endif /* jsprvtd_h___ */

View File

@@ -1,296 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jspubtd_h___
#define jspubtd_h___
/*
* JS public API typedefs.
*/
#include "jstypes.h"
#define NETSCAPE_INTERNAL 1
#include "jscompat.h"
#ifndef JS_INLINE
# ifdef _WIN32
# define JS_INLINE __inline
# elif defined(__GNUC__)
# define JS_INLINE inline
# else
# define JS_INLINE
# endif
#endif /* JS_INLINE */
/*
* Downrev NSPR versions of jstypes.h do not define these linkage-related
* PR_* macros, so we define them if necessary. Eventually, we should be
* able to remove these local definitions (move them to js/ref/jstypes.h,
* and get them from an uprev NSPR's jstypes.h for js/src).
*/
#ifndef IMPORT_API
# ifdef _WIN32
# define IMPORT_API(__x) _declspec(dllimport) __x
# else
# define IMPORT_API(__x) IMPLEMENT(__x)
# endif
#endif /* IMPORT_API */
#ifndef IMPORT_DATA
# ifdef _WIN32
# define IMPORT_DATA(__x) _declspec(dllimport) __x
# else
# define IMPORT_DATA(__x) __x
# endif
#endif /* IMPORT_DATA */
#ifndef PUBLIC_DATA
# ifdef _WIN32
# define PUBLIC_DATA(__x) _declspec(dllexport) __x
# else
# define PUBLIC_DATA(__x) __x
# endif
#endif /* PUBLIC_DATA */
/*
* The linkage of JS API functions differs depending on whether the file is
* used within the JS library or not. Any source file within the JS
* interpreter should define EXPORT_JS_API whereas any client of the library
* should not.
*/
#ifdef EXPORT_JS_API
#define JS_PUBLIC_API(t) IMPLEMENT(t)
#define JS_PUBLIC_DATA(t) PUBLIC_DATA(t)
#else
#define JS_PUBLIC_API(t) IMPORT_API(t)
#define JS_PUBLIC_DATA(t) IMPORT_DATA(t)
#endif
#define JS_FRIEND_API(t) JS_PUBLIC_API(t)
#define JS_FRIEND_DATA(t) JS_PUBLIC_DATA(t)
/* Scalar typedefs. */
typedef uint16 jschar;
typedef int32 jsint;
typedef uint32 jsuint;
typedef float64 jsdouble;
typedef jsword jsval;
typedef jsword jsid;
typedef jsword jsrefcount;
typedef enum JSVersion {
JSVERSION_1_0 = 100,
JSVERSION_1_1 = 110,
JSVERSION_1_2 = 120,
JSVERSION_1_3 = 130,
JSVERSION_1_4 = 140,
JSVERSION_DEFAULT = 0,
JSVERSION_UNKNOWN = -1
} JSVersion;
#define JSVERSION_IS_ECMA(version) \
((version) == JSVERSION_DEFAULT || (version) >= JSVERSION_1_3)
#define JSVERSION_IS_ECMAv2(version) \
((version) >= JSVERSION_1_3)
/* Result of typeof operator enumeration. */
typedef enum JSType {
JSTYPE_VOID, /* undefined */
JSTYPE_OBJECT, /* object */
JSTYPE_FUNCTION, /* function */
JSTYPE_STRING, /* string */
JSTYPE_NUMBER, /* number */
JSTYPE_BOOLEAN, /* boolean */
JSTYPE_LIMIT
} JSType;
/* JSObjectOps.checkAccess mode enumeration. */
typedef enum JSAccessMode {
JSACC_PROTO,
JSACC_PARENT,
JSACC_IMPORT,
JSACC_WATCH,
JSACC_LIMIT
} JSAccessMode;
/*
* This enum type is used to control the behavior of a JSObject property
* iterator function that has type JSNewEnumerate.
*/
typedef enum JSIterateOp {
JSENUMERATE_INIT, /* Create new iterator state */
JSENUMERATE_NEXT, /* Iterate once */
JSENUMERATE_DESTROY /* Destroy iterator state */
} JSIterateOp;
/* Struct typedefs. */
typedef struct JSClass JSClass;
typedef struct JSConstDoubleSpec JSConstDoubleSpec;
typedef struct JSContext JSContext;
typedef struct JSErrorReport JSErrorReport;
typedef struct JSFunction JSFunction;
typedef struct JSFunctionSpec JSFunctionSpec;
typedef struct JSIdArray JSIdArray;
typedef struct JSProperty JSProperty;
typedef struct JSPropertySpec JSPropertySpec;
typedef struct JSObject JSObject;
typedef struct JSObjectMap JSObjectMap;
typedef struct JSObjectOps JSObjectOps;
typedef struct JSRuntime JSRuntime;
typedef struct JSRuntime JSTaskState; /* XXX deprecated name */
typedef struct JSScript JSScript;
typedef struct JSString JSString;
typedef struct JSXDRState JSXDRState;
#ifndef CRT_CALL
#ifdef XP_OS2
#define CRT_CALL _Optlink
#else
#define CRT_CALL
#endif
#endif
/* JSClass (and JSObjectOps where appropriate) function pointer typedefs. */
typedef JSBool
(* CRT_CALL JSPropertyOp)(JSContext *cx, JSObject *obj, jsval id, jsval *vp);
/*
* This function type is used for callbacks that enumerate the properties of a
* JSObject. The behavior depends on the value of enum_op:
*
* JSENUMERATE_INIT - A new, opaque iterator state should be allocated and
* stored in *statep. (You can use PRIVATE_TO_JSVAL() to store
* a pointer in *statep). The number of properties that will be
* enumerated should be returned as an integer jsval in *idp, if idp
* is non-NULL.
* JSENUMERATE_NEXT - A previously allocated opaque iterator state is passed
* in via statep. Return the next jsid in the iteration using *idp.
* The opaque iterator state pointed at by statep is destroyed and
* *statep is set to JSVAL_NULL if there are no properties left to
* enumerate.
* JSENUMERATE_DESTROY - Destroy the opaque iterator previous allocated by
* a call to this function with enum_op set to JSENUMERATE_INIT.
*
* The return value is always used to indicate success, with a value of JS_FALSE
* for failure.
*/
typedef JSBool
(* CRT_CALL JSNewEnumerateOp)(JSContext *cx, JSObject *obj,
JSIterateOp enum_op,
jsval *statep, jsid *idp);
typedef JSBool
(* CRT_CALL JSEnumerateOp)(JSContext *cx, JSObject *obj);
typedef JSBool
(* CRT_CALL JSResolveOp)(JSContext *cx, JSObject *obj, jsval id);
typedef JSBool
(* CRT_CALL JSNewResolveOp)(JSContext *cx, JSObject *obj, jsval id, uintN flags,
JSObject **objp);
typedef JSBool
(* CRT_CALL JSConvertOp)(JSContext *cx, JSObject *obj, JSType type, jsval *vp);
typedef void
(* CRT_CALL JSFinalizeOp)(JSContext *cx, JSObject *obj);
typedef JSObjectOps *
(* CRT_CALL JSGetObjectOps)(JSContext *cx, JSClass *clasp);
typedef JSBool
(* CRT_CALL JSCheckAccessOp)(JSContext *cx, JSObject *obj, jsval id,
JSAccessMode mode, jsval *vp);
typedef JSBool
(* CRT_CALL JSXDRObjectOp)(JSXDRState *xdr, JSObject **objp);
typedef JSBool
(* CRT_CALL JSHasInstanceOp)(JSContext *cx, JSObject *obj, jsval v,
JSBool *bp);
/* JSObjectOps function pointer typedefs. */
typedef JSObjectMap *
(* CRT_CALL JSNewObjectMapOp)(JSContext *cx, jsrefcount nrefs,
JSObjectOps *ops, JSClass *clasp,
JSObject *obj);
typedef void
(* CRT_CALL JSObjectMapOp)(JSContext *cx, JSObjectMap *map);
typedef JSBool
(* CRT_CALL JSLookupPropOp)(JSContext *cx, JSObject *obj, jsid id,
JSObject **objp, JSProperty **propp
#if defined JS_THREADSAFE && defined DEBUG
, const char *file, uintN line
#endif
);
typedef JSBool
(* CRT_CALL JSDefinePropOp)(JSContext *cx, JSObject *obj, jsid id, jsval value,
JSPropertyOp getter, JSPropertyOp setter,
uintN attrs, JSProperty **propp);
typedef JSBool
(* CRT_CALL JSPropertyIdOp)(JSContext *cx, JSObject *obj, jsid id, jsval *vp);
typedef JSBool
(* CRT_CALL JSAttributesOp)(JSContext *cx, JSObject *obj, jsid id,
JSProperty *prop, uintN *attrsp);
typedef JSBool
(* CRT_CALL JSCheckAccessIdOp)(JSContext *cx, JSObject *obj, jsid id,
JSAccessMode mode, jsval *vp, uintN *attrsp);
typedef JSObject *
(* CRT_CALL JSObjectOp)(JSContext *cx, JSObject *obj);
typedef void
(* CRT_CALL JSPropertyRefOp)(JSContext *cx, JSObject *obj, JSProperty *prop);
/* Typedef for native functions called by the JS VM. */
typedef JSBool
(* CRT_CALL JSNative)(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval);
/* Callbacks and their arguments. */
typedef enum JSGCStatus {
JSGC_BEGIN,
JSGC_END
} JSGCStatus;
typedef JSBool
(* CRT_CALL JSGCCallback)(JSContext *cx, JSGCStatus status);
typedef JSBool
(* CRT_CALL JSBranchCallback)(JSContext *cx, JSScript *script);
typedef void
(* CRT_CALL JSErrorReporter)(JSContext *cx, const char *message,
JSErrorReport *report);
typedef struct JSErrorFormatString {
const char *format;
const uintN argCount;
} JSErrorFormatString;
typedef const JSErrorFormatString *
(* CRT_CALL JSErrorCallback)(void *userRef, const char *locale,
const uintN errorNumber);
#endif /* jspubtd_h___ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,107 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsregexp_h___
#define jsregexp_h___
/*
* JS regular expression interface.
*/
#include <stddef.h>
#include "jspubtd.h"
#include "jsstr.h"
struct JSRegExpStatics {
JSString *input; /* input string to match (perl $_, GC root) */
JSBool multiline; /* whether input contains newlines (perl $*) */
uintN parenCount; /* number of valid elements in parens[] */
uintN moreLength; /* number of allocated elements in moreParens */
JSSubString parens[9]; /* last set of parens matched (perl $1, $2) */
JSSubString *moreParens; /* null or realloc'd vector for $10, etc. */
JSSubString lastMatch; /* last string matched (perl $&) */
JSSubString lastParen; /* last paren matched (perl $+) */
JSSubString leftContext; /* input to left of last match (perl $`) */
JSSubString rightContext; /* input to right of last match (perl $') */
};
/*
* This macro is safe because moreParens is guaranteed to be allocated and big
* enough to hold parenCount, or else be null when parenCount is 0.
*/
#define REGEXP_PAREN_SUBSTRING(res, num) \
(((jsuint)(num) < (jsuint)(res)->parenCount) \
? ((jsuint)(num) < 9) \
? &(res)->parens[num] \
: &(res)->moreParens[(num) - 9] \
: &js_EmptySubString)
struct JSRegExp {
JSString *source; /* locked source string, sans // */
size_t length; /* program length in bytes */
size_t lastIndex; /* index after last match, for //g iterator */
uintN parenCount; /* number of parenthesized submatches */
uint8 flags; /* flags, see jsapi.h */
jsbytecode program[1]; /* regular expression bytecode */
};
extern JSRegExp *
js_NewRegExp(JSContext *cx, JSString *str, uintN flags);
extern JSRegExp *
js_NewRegExpOpt(JSContext *cx, JSString *str, JSString *opt);
extern void
js_DestroyRegExp(JSContext *cx, JSRegExp *re);
/*
* Execute re on input str at *indexp, returning null in *rval on mismatch.
* On match, return true if test is true, otherwise return an array object.
* Update *indexp and cx->regExpStatics always on match.
*/
extern JSBool
js_ExecuteRegExp(JSContext *cx, JSRegExp *re, JSString *str, size_t *indexp,
JSBool test, jsval *rval);
/*
* These two add and remove GC roots, respectively, so their calls must be
* well-ordered.
*/
extern JSBool
js_InitRegExpStatics(JSContext *cx, JSRegExpStatics *res);
extern void
js_FreeRegExpStatics(JSContext *cx, JSRegExpStatics *res);
#define JSVAL_IS_REGEXP(cx, v) \
(JSVAL_IS_OBJECT(v) && JSVAL_TO_OBJECT(v) && \
OBJ_GET_CLASS(cx, JSVAL_TO_OBJECT(v)) == &js_RegExpClass)
extern JSClass js_RegExpClass;
extern JSObject *
js_InitRegExpClass(JSContext *cx, JSObject *obj);
/*
* Create a new RegExp object.
*/
extern JSObject *
js_NewRegExpObject(JSContext *cx, jschar *chars, size_t length, uintN flags);
extern JSBool
js_XDRRegExp(JSXDRState *xdr, JSObject **objp);
#endif /* jsregexp_h___ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,260 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef jsscan_h___
#define jsscan_h___
/*
* JS lexical scanner interface.
*/
#include <stddef.h>
#ifdef JSFILE
#include <stdio.h>
#endif
#include "jsopcode.h"
#include "jsprvtd.h"
#include "jspubtd.h"
JS_BEGIN_EXTERN_C
typedef enum JSTokenType {
TOK_ERROR = -1, /* well-known as the only code < EOF */
TOK_EOF = 0, /* end of file */
TOK_EOL = 1, /* end of line */
TOK_SEMI = 2, /* semicolon */
TOK_LB = 3, TOK_RB = 4, /* left and right brackets */
TOK_LC = 5, TOK_RC = 6, /* left and right curlies (braces) */
TOK_LP = 7, TOK_RP = 8, /* left and right parentheses */
TOK_COMMA = 9, /* comma operator */
TOK_ASSIGN = 10, /* assignment ops (= += -= etc.) */
TOK_HOOK = 11, TOK_COLON = 12, /* conditional (?:) */
TOK_OR = 13, /* logical or (||) */
TOK_AND = 14, /* logical and (&&) */
TOK_BITOR = 15, /* bitwise-or (|) */
TOK_BITXOR = 16, /* bitwise-xor (^) */
TOK_BITAND = 17, /* bitwise-and (&) */
TOK_EQOP = 18, /* equality ops (== !=) */
TOK_RELOP = 19, /* relational ops (< <= > >=) */
TOK_SHOP = 20, /* shift ops (<< >> >>>) */
TOK_PLUS = 21, /* plus */
TOK_MINUS = 22, /* minus */
TOK_STAR = 23, TOK_DIVOP = 24, /* multiply/divide ops (* / %) */
TOK_UNARYOP = 25, /* unary prefix operator */
TOK_INC = 26, TOK_DEC = 27, /* increment/decrement (++ --) */
TOK_DOT = 28, /* member operator (.) */
TOK_NAME = 29, /* identifier */
TOK_NUMBER = 30, /* numeric constant */
TOK_STRING = 31, /* string constant */
TOK_OBJECT = 32, /* RegExp or other object constant */
TOK_PRIMARY = 33, /* true, false, null, this, super */
TOK_FUNCTION = 34, /* function keyword */
TOK_EXPORT = 35, /* export keyword */
TOK_IMPORT = 36, /* import keyword */
TOK_IF = 37, /* if keyword */
TOK_ELSE = 38, /* else keyword */
TOK_SWITCH = 39, /* switch keyword */
TOK_CASE = 40, /* case keyword */
TOK_DEFAULT = 41, /* default keyword */
TOK_WHILE = 42, /* while keyword */
TOK_DO = 43, /* do keyword */
TOK_FOR = 44, /* for keyword */
TOK_BREAK = 45, /* break keyword */
TOK_CONTINUE = 46, /* continue keyword */
TOK_IN = 47, /* in keyword */
TOK_VAR = 48, /* var keyword */
TOK_WITH = 49, /* with keyword */
TOK_RETURN = 50, /* return keyword */
TOK_NEW = 51, /* new keyword */
TOK_DELETE = 52, /* delete keyword */
TOK_DEFSHARP = 53, /* #n= for object/array initializers */
TOK_USESHARP = 54, /* #n# for object/array initializers */
TOK_TRY = 55, /* try keyword */
TOK_CATCH = 56, /* catch keyword */
TOK_FINALLY = 57, /* finally keyword */
TOK_THROW = 58, /* throw keyword */
TOK_INSTANCEOF = 59, /* instanceof keyword */
TOK_DEBUGGER = 60, /* debugger keyword */
TOK_RESERVED, /* reserved keywords */
TOK_LIMIT /* domain size */
} JSTokenType;
#define IS_PRIMARY_TOKEN(tt) \
((uintN)((tt) - TOK_NAME) <= (uintN)(TOK_PRIMARY - TOK_NAME))
struct JSTokenPtr {
uint16 index; /* index of char in physical line */
uint16 lineno; /* physical line number */
};
struct JSTokenPos {
JSTokenPtr begin; /* first character and line of token */
JSTokenPtr end; /* index 1 past last char, last line */
};
struct JSToken {
JSTokenType type; /* char value or above enumerator */
JSTokenPos pos; /* token position in file */
jschar *ptr; /* beginning of token in line buffer */
union {
struct {
JSOp op; /* operator, for minimal parser */
JSAtom *atom; /* atom table entry */
} s;
jsdouble dval; /* floating point number */
} u;
};
#define t_op u.s.op
#define t_atom u.s.atom
#define t_dval u.dval
typedef struct JSTokenBuf {
jschar *base; /* base of line or stream buffer */
jschar *limit; /* limit for quick bounds check */
jschar *ptr; /* next char to get, or slot to use */
} JSTokenBuf;
#define JS_LINE_LIMIT 256 /* logical line buffer size limit --
physical line length is unlimited */
struct JSTokenStream {
JSToken token; /* last token scanned */
JSToken pushback; /* pushed-back already-scanned token */
uintN lineno; /* current line number */
uintN ungetpos; /* next free char slot in ungetbuf */
jschar ungetbuf[4]; /* at most 4, for \uXXXX lookahead */
uintN flags; /* flags -- see below */
ptrdiff_t linelen; /* physical linebuf segment length */
ptrdiff_t linepos; /* linebuf offset in physical line */
JSTokenBuf linebuf; /* line buffer for diagnostics */
JSTokenBuf userbuf; /* user input buffer if !file */
JSTokenBuf tokenbuf; /* current token string buffer */
const char *filename; /* input filename or null */
#ifdef JSFILE
FILE *file; /* stdio stream if reading from file */
#endif
JSPrincipals *principals; /* principals associated with given input */
JSSourceHandler listener; /* callback for source; eg debugger */
void *listenerData; /* listener 'this' data */
void *listenerTSData;/* listener data for this TokenStream */
};
/* JSTokenStream flags */
#define TSF_ERROR 0x01 /* fatal error while scanning */
#define TSF_EOF 0x02 /* hit end of file */
#define TSF_NEWLINES 0x04 /* tokenize newlines */
#define TSF_REGEXP 0x08 /* looking for a regular expression */
#define TSF_INTERACTIVE 0x10 /* interactive parsing mode */
#define TSF_NLFLAG 0x20 /* last linebuf ended with \n */
#define TSF_CRFLAG 0x40 /* linebuf would have ended with \r */
/*
* At most one non-EOF token can be pushed back onto a TokenStream between
* Get or successful Match operations. These macros manipulate the pushback
* token to clear it when changing scanning modes (upon initialzation, after
* errors, or between newline-sensitive and insensitive states).
*/
#define CLEAR_PUSHBACK(ts) ((ts)->pushback.type = TOK_EOF)
#define SCAN_NEWLINES(ts) ((ts)->flags |= TSF_NEWLINES)
#define HIDE_NEWLINES(ts) \
JS_BEGIN_MACRO \
(ts)->flags &= ~TSF_NEWLINES; \
if ((ts)->pushback.type == TOK_EOL) \
(ts)->pushback.type = TOK_EOF; \
JS_END_MACRO
/* Clear ts member that might point above a released cx->tempPool mark. */
#define RESET_TOKENBUF(ts) ((ts)->tokenbuf.base = (ts)->tokenbuf.limit = NULL)
/*
* Create a new token stream, either from an input buffer or from a file.
* Return null on file-open or memory-allocation failure.
*
* NB: All of js_New{,Buffer,File}TokenStream() return a pointer to transient
* memory in the current context's temp pool. This memory is deallocated via
* JS_ARENA_RELEASE() after parsing is finished.
*/
extern JSTokenStream *
js_NewTokenStream(JSContext *cx, const jschar *base, size_t length,
const char *filename, uintN lineno, JSPrincipals *principals);
extern JS_FRIEND_API(JSTokenStream *)
js_NewBufferTokenStream(JSContext *cx, const jschar *base, size_t length);
#ifdef JSFILE
extern JS_FRIEND_API(JSTokenStream *)
js_NewFileTokenStream(JSContext *cx, const char *filename, FILE *defaultfp);
#endif
extern JS_FRIEND_API(JSBool)
js_CloseTokenStream(JSContext *cx, JSTokenStream *ts);
/*
* Initialize the scanner, installing JS keywords into cx's global scope.
*/
extern JSBool
js_InitScanner(JSContext *cx);
/*
* Friend-exported API entry point to call a mapping function on each reserved
* identifier in the scanner's keyword table.
*/
extern JS_FRIEND_API(void)
js_MapKeywords(void (*mapfun)(const char *));
/*
* Report an error found while scanning ts to a window or other output device
* associated with cx.
*/
extern void
js_ReportCompileError(JSContext *cx, JSTokenStream *ts, uintN flags,
const char *format, ...);
void
js_ReportCompileErrorNumber(JSContext *cx, JSTokenStream *ts, uintN flags,
const uintN errorNumber, ...);
/*
* Look ahead one token and return its type.
*/
extern JSTokenType
js_PeekToken(JSContext *cx, JSTokenStream *ts);
extern JSTokenType
js_PeekTokenSameLine(JSContext *cx, JSTokenStream *ts);
/*
* Get the next token from ts.
*/
extern JSTokenType
js_GetToken(JSContext *cx, JSTokenStream *ts);
/*
* Push back the last scanned token onto ts.
*/
extern void
js_UngetToken(JSTokenStream *ts);
/*
* Get the next token from ts if its type is tt.
*/
extern JSBool
js_MatchToken(JSContext *cx, JSTokenStream *ts, JSTokenType tt);
JS_END_EXTERN_C
#endif /* jsscan_h___ */

View File

@@ -1,519 +0,0 @@
/* -*- Mode: C; 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.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* JS symbol tables.
*/
#include "jsstddef.h"
#include <string.h>
#include "jstypes.h"
/* Removed by JSIFY: #include "prlog.h" */
#include "jsutil.h" /* Added by JSIFY */
#include "jsapi.h"
#include "jsatom.h"
#include "jscntxt.h"
#include "jsinterp.h"
#include "jslock.h"
#include "jsnum.h"
#include "jsscope.h"
#include "jsstr.h"
STATIC_DLL_CALLBACK(JSHashNumber)
js_hash_id(const void *key)
{
jsval v;
const JSAtom *atom;
v = (jsval)key;
if (JSVAL_IS_INT(v))
return JSVAL_TO_INT(v);
atom = key;
return atom->number;
}
typedef struct JSScopePrivate {
JSContext *context;
JSScope *scope;
} JSScopePrivate;
STATIC_DLL_CALLBACK(void *)
js_alloc_scope_space(void *priv, size_t size)
{
return JS_malloc(((JSScopePrivate *)priv)->context, size);
}
STATIC_DLL_CALLBACK(void)
js_free_scope_space(void *priv, void *item)
{
JS_free(((JSScopePrivate *)priv)->context, item);
}
STATIC_DLL_CALLBACK(JSHashEntry *)
js_alloc_symbol(void *priv, const void *key)
{
JSScopePrivate *spriv;
JSContext *cx;
JSSymbol *sym;
spriv = priv;
JS_ASSERT(JS_IS_SCOPE_LOCKED(spriv->scope));
cx = spriv->context;
sym = JS_malloc(cx, sizeof(JSSymbol));
if (!sym)
return NULL;
sym->entry.key = key;
return &sym->entry;
}
STATIC_DLL_CALLBACK(void)
js_free_symbol(void *priv, JSHashEntry *he, uintN flag)
{
JSScopePrivate *spriv;
JSContext *cx;
JSSymbol *sym, **sp;
JSScopeProperty *sprop;
spriv = priv;
JS_ASSERT(JS_IS_SCOPE_LOCKED(spriv->scope));
cx = spriv->context;
sym = (JSSymbol *)he;
sprop = sym->entry.value;
if (sprop) {
sym->entry.value = NULL;
sprop = js_DropScopeProperty(cx, spriv->scope, sprop);
if (sprop) {
for (sp = &sprop->symbols; *sp; sp = &(*sp)->next) {
if (*sp == sym) {
*sp = sym->next;
if (!*sp)
break;
}
}
sym->next = NULL;
}
}
if (flag == HT_FREE_ENTRY)
JS_free(cx, he);
}
static JSHashAllocOps hash_scope_alloc_ops = {
js_alloc_scope_space, js_free_scope_space,
js_alloc_symbol, js_free_symbol
};
/************************************************************************/
STATIC_DLL_CALLBACK(JSSymbol *)
js_hash_scope_lookup(JSContext *cx, JSScope *scope, jsid id, JSHashNumber hash)
{
JSHashTable *table = scope->data;
JSHashEntry **hep;
JSSymbol *sym;
hep = JS_HashTableRawLookup(table, hash, (const void *)id);
sym = (JSSymbol *) *hep;
return sym;
}
#define SCOPE_ADD(PRIV, CLASS_SPECIFIC_CODE) \
JS_BEGIN_MACRO \
if (sym) { \
if (sym->entry.value == sprop) \
return sym; \
if (sym->entry.value) \
js_free_symbol(PRIV, &sym->entry, HT_FREE_VALUE); \
} else { \
CLASS_SPECIFIC_CODE \
sym->scope = scope; \
sym->next = NULL; \
} \
if (sprop) { \
sym->entry.value = js_HoldScopeProperty(cx, scope, sprop); \
for (sp = &sprop->symbols; *sp; sp = &(*sp)->next) \
; \
*sp = sym; \
} else { \
sym->entry.value = NULL; \
} \
JS_END_MACRO
STATIC_DLL_CALLBACK(JSSymbol *)
js_hash_scope_add(JSContext *cx, JSScope *scope, jsid id, JSScopeProperty *sprop)
{
JSHashTable *table = scope->data;
const void *key;
JSHashNumber keyHash;
JSHashEntry **hep;
JSSymbol *sym, **sp;
JSScopePrivate *priv;
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
priv = table->allocPriv;
priv->context = cx;
key = (const void *)id;
keyHash = js_hash_id(key);
hep = JS_HashTableRawLookup(table, keyHash, key);
sym = (JSSymbol *) *hep;
SCOPE_ADD(priv,
sym = (JSSymbol *) JS_HashTableRawAdd(table, hep, keyHash, key, NULL);
if (!sym)
return NULL;
);
return sym;
}
STATIC_DLL_CALLBACK(JSBool)
js_hash_scope_remove(JSContext *cx, JSScope *scope, jsid id)
{
JSHashTable *table = scope->data;
JSScopePrivate *priv;
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
priv = table->allocPriv;
priv->context = cx;
return JS_HashTableRemove(table, (const void *)id);
}
/* Forward declaration for use by js_hash_scope_clear(). */
extern JS_FRIEND_DATA(JSScopeOps) js_list_scope_ops;
STATIC_DLL_CALLBACK(void)
js_hash_scope_clear(JSContext *cx, JSScope *scope)
{
JSHashTable *table = scope->data;
JSScopePrivate *priv;
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
priv = table->allocPriv;
priv->context = cx;
JS_HashTableDestroy(table);
JS_free(cx, priv);
scope->ops = &js_list_scope_ops;
scope->data = NULL;
}
JSScopeOps js_hash_scope_ops = {
js_hash_scope_lookup,
js_hash_scope_add,
js_hash_scope_remove,
js_hash_scope_clear
};
/************************************************************************/
STATIC_DLL_CALLBACK(JSSymbol *)
js_list_scope_lookup(JSContext *cx, JSScope *scope, jsid id, JSHashNumber hash)
{
JSSymbol *sym, **sp;
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
for (sp = (JSSymbol **)&scope->data; (sym = *sp) != 0;
sp = (JSSymbol **)&sym->entry.next) {
if (sym_id(sym) == id) {
/* Move sym to the front for shorter searches. */
*sp = (JSSymbol *)sym->entry.next;
sym->entry.next = scope->data;
scope->data = sym;
return sym;
}
}
return NULL;
}
#define HASH_THRESHOLD 5
STATIC_DLL_CALLBACK(JSSymbol *)
js_list_scope_add(JSContext *cx, JSScope *scope, jsid id, JSScopeProperty *sprop)
{
JSSymbol *list = scope->data;
uint32 nsyms;
JSSymbol *sym, *next, **sp;
JSHashTable *table;
JSHashEntry **hep;
JSScopePrivate priv;
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
nsyms = 0;
for (sym = list; sym; sym = (JSSymbol *)sym->entry.next) {
if (sym_id(sym) == id)
break;
nsyms++;
}
if (nsyms >= HASH_THRESHOLD) {
JSScopePrivate *priv = JS_malloc(cx, sizeof(JSScopePrivate));
if (!priv) return NULL;
priv->context = cx;
priv->scope = scope;
table = JS_NewHashTable(nsyms, js_hash_id,
JS_CompareValues, JS_CompareValues,
&hash_scope_alloc_ops, priv);
if (table) {
for (sym = list; sym; sym = next) {
/* Save next for loop update, before it changes in lookup. */
next = (JSSymbol *)sym->entry.next;
/* Now compute missing keyHash fields. */
sym->entry.keyHash = js_hash_id(sym->entry.key);
sym->entry.next = NULL;
hep = JS_HashTableRawLookup(table,
sym->entry.keyHash,
sym->entry.key);
*hep = &sym->entry;
}
table->nentries = nsyms;
scope->ops = &js_hash_scope_ops;
scope->data = table;
return scope->ops->add(cx, scope, id, sprop);
}
}
priv.context = cx;
priv.scope = scope;
SCOPE_ADD(&priv,
sym = (JSSymbol *)js_alloc_symbol(&priv, (const void *)id);
if (!sym)
return NULL;
/* Don't set keyHash until we know we need it, above. */
sym->entry.next = scope->data;
scope->data = sym;
);
return sym;
}
STATIC_DLL_CALLBACK(JSBool)
js_list_scope_remove(JSContext *cx, JSScope *scope, jsid id)
{
JSSymbol *sym, **sp;
JSScopePrivate priv;
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
for (sp = (JSSymbol **)&scope->data; (sym = *sp) != 0;
sp = (JSSymbol **)&sym->entry.next) {
if (sym_id(sym) == id) {
*sp = (JSSymbol *)sym->entry.next;
priv.context = cx;
priv.scope = scope;
js_free_symbol(&priv, &sym->entry, HT_FREE_ENTRY);
return JS_TRUE;
}
}
return JS_FALSE;
}
STATIC_DLL_CALLBACK(void)
js_list_scope_clear(JSContext *cx, JSScope *scope)
{
JSSymbol *sym;
JSScopePrivate priv;
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
while ((sym = scope->data) != NULL) {
scope->data = sym->entry.next;
priv.context = cx;
priv.scope = scope;
js_free_symbol(&priv, &sym->entry, HT_FREE_ENTRY);
}
}
JSScopeOps JS_FRIEND_DATA(js_list_scope_ops) = {
js_list_scope_lookup,
js_list_scope_add,
js_list_scope_remove,
js_list_scope_clear
};
/************************************************************************/
JSScope *
js_GetMutableScope(JSContext *cx, JSObject *obj)
{
JSScope *scope, *newscope;
scope = (JSScope *) obj->map;
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
if (scope->object == obj)
return scope;
newscope = js_NewScope(cx, 0, scope->map.ops, LOCKED_OBJ_GET_CLASS(obj),
obj);
if (!newscope)
return NULL;
JS_LOCK_SCOPE(cx, newscope);
obj->map = js_HoldObjectMap(cx, &newscope->map);
scope = (JSScope *) js_DropObjectMap(cx, &scope->map, obj);
JS_TRANSFER_SCOPE_LOCK(cx, scope, newscope);
return newscope;
}
JSScope *
js_MutateScope(JSContext *cx, JSObject *obj, jsid id,
JSPropertyOp getter, JSPropertyOp setter, uintN attrs,
JSScopeProperty **propp)
{
/* XXX pessimal */
*propp = NULL;
return js_GetMutableScope(cx, obj);
}
JSScope *
js_NewScope(JSContext *cx, jsrefcount nrefs, JSObjectOps *ops, JSClass *clasp,
JSObject *obj)
{
JSScope *scope;
scope = JS_malloc(cx, sizeof(JSScope));
if (!scope)
return NULL;
js_InitObjectMap(&scope->map, nrefs, ops, clasp);
scope->object = obj;
scope->props = NULL;
scope->proptail = &scope->props;
scope->ops = &js_list_scope_ops;
scope->data = NULL;
#ifdef JS_THREADSAFE
js_NewLock(&scope->lock);
scope->count = 0;
#ifdef DEBUG
scope->file[0] = scope->file[1] = scope->file[2] = scope->file[3] = NULL;
scope->line[0] = scope->line[1] = scope->line[2] = scope->line[3] = 0;
#endif
#endif
return scope;
}
void
js_DestroyScope(JSContext *cx, JSScope *scope)
{
JS_LOCK_SCOPE(cx, scope);
scope->ops->clear(cx, scope);
JS_UNLOCK_SCOPE(cx, scope);
#ifdef JS_THREADSAFE
JS_ASSERT(scope->count == 0);
js_DestroyLock(&scope->lock);
#endif
JS_free(cx, scope);
}
JSHashNumber
js_HashValue(jsval v)
{
return js_hash_id((const void *)v);
}
jsval
js_IdToValue(jsid id)
{
JSAtom *atom;
if (JSVAL_IS_INT(id))
return id;
atom = (JSAtom *)id;
return ATOM_KEY(atom);
}
JSScopeProperty *
js_NewScopeProperty(JSContext *cx, JSScope *scope, jsid id,
JSPropertyOp getter, JSPropertyOp setter, uintN attrs)
{
uint32 slot;
JSScopeProperty *sprop;
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
if (!js_AllocSlot(cx, scope->object, &slot))
return NULL;
sprop = JS_malloc(cx, sizeof(JSScopeProperty));
if (!sprop) {
js_FreeSlot(cx, scope->object, slot);
return NULL;
}
sprop->nrefs = 0;
sprop->id = js_IdToValue(id);
sprop->getter = getter;
sprop->setter = setter;
sprop->slot = slot;
sprop->attrs = attrs;
sprop->spare = 0;
sprop->symbols = NULL;
sprop->next = NULL;
sprop->prevp = scope->proptail;
*scope->proptail = sprop;
scope->proptail = &sprop->next;
return sprop;
}
void
js_DestroyScopeProperty(JSContext *cx, JSScope *scope, JSScopeProperty *sprop)
{
/*
* Test whether obj was finalized before prop's last dereference.
*
* This can happen when a deleted property is held by a property iterator
* object (which points to obj, keeping obj alive so long as the property
* iterator is reachable). As soon as the GC finds the iterator to be
* unreachable, it will finalize the iterator, and may also finalize obj,
* in an unpredictable order. If obj is finalized first, its map will be
* null below, and we need only free prop.
*
* In the more typical case of a property whose last reference (from a
* symbol in obj's scope) goes away before obj is finalized, we must be
* sure to free prop's slot and unlink it from obj's property list.
*/
if (scope) {
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
if (scope->object) {
js_FreeSlot(cx, scope->object, sprop->slot);
*sprop->prevp = sprop->next;
if (sprop->next)
sprop->next->prevp = sprop->prevp;
else
scope->proptail = sprop->prevp;
}
}
/* Purge any cached weak links to prop, then free it. */
js_FlushPropertyCacheByProp(cx, (JSProperty *)sprop);
JS_free(cx, sprop);
}
JSScopeProperty *
js_HoldScopeProperty(JSContext *cx, JSScope *scope, JSScopeProperty *sprop)
{
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
if (sprop) {
JS_ASSERT(sprop->nrefs >= 0);
sprop->nrefs++;
}
return sprop;
}
JSScopeProperty *
js_DropScopeProperty(JSContext *cx, JSScope *scope, JSScopeProperty *sprop)
{
JS_ASSERT(JS_IS_SCOPE_LOCKED(scope));
if (sprop) {
JS_ASSERT(sprop->nrefs > 0);
if (--sprop->nrefs == 0) {
js_DestroyScopeProperty(cx, scope, sprop);
sprop = NULL;
}
}
return sprop;
}

Some files were not shown because too many files have changed in this diff Show More