92 Commits

Author SHA1 Message Date
igor%mir2.org
50e27318b9 Bug 324278: Implementation of GC marking algorithm that uses constant space for
any kind of GC things. r=brendan

The main idea is to put a GC thing to a special "unscanned bag" instead of recursively calling GC_MARK on thing's children when C stack is slow. Then later the code loops through the bag marking the children until the bag is empty.

The unscanned bag is implemented as a linked list of GC arenas where things that belongs to the bug marked with GCF_MARK|GCF_FINAL combination. To avoid long scanning of arenas on the list, the code uses a bitmask per arena to indicate which pages within the arena contains unscanned things and an extra bitmask per page to indicate offset range withing the page of the unscanned things.


git-svn-id: svn://10.0.0.236/trunk@192779 18797224-902f-48f8-a5cc-f745e15eee43
2006-03-22 15:38:43 +00:00
daumling%adobe.com
28710200bb Bug 330169: Replaced early exits in ParseNodeToXML() with a jump to skip_child so js_LeaveLocalRootScope() can be called correctly. r=mrbkap
git-svn-id: svn://10.0.0.236/trunk@192412 18797224-902f-48f8-a5cc-f745e15eee43
2006-03-15 09:23:36 +00:00
timeless%mozdev.org
3e32fc4b98 Bug 329879 Coverity complains that QName null checks argv after asserting it can't be null
r=brendan


git-svn-id: svn://10.0.0.236/trunk@192120 18797224-902f-48f8-a5cc-f745e15eee43
2006-03-09 23:59:40 +00:00
mrbkap%gmail.com
3b157f0284 Flatten before ever reaching CheckCycle, since the way things currently are, it could receive lists of arbitrary length. bug 328769, r=brendan
git-svn-id: svn://10.0.0.236/trunk@191332 18797224-902f-48f8-a5cc-f745e15eee43
2006-02-27 20:33:56 +00:00
mrbkap%gmail.com
cb075c9c2b Detect cycles even when we're inserting a degenerate list of length 1. bug 328249, r=brendan
git-svn-id: svn://10.0.0.236/trunk@191085 18797224-902f-48f8-a5cc-f745e15eee43
2006-02-23 23:00:23 +00:00
brendan%mozilla.org
7f0d4362df Fix an initially hard-to-see bug reported by daumling@adobe.com, plus another one mentioned by mrbkap (327941, r=mrbkap).
git-svn-id: svn://10.0.0.236/trunk@190812 18797224-902f-48f8-a5cc-f745e15eee43
2006-02-22 06:09:09 +00:00
brendan%mozilla.org
a7679c6f0c Fix duplicate kid overwrite case that avoided cycle detection (327564, r=mrbkap).
git-svn-id: svn://10.0.0.236/trunk@190398 18797224-902f-48f8-a5cc-f745e15eee43
2006-02-17 21:40:04 +00:00
igor%mir2.org
62f23de8b2 BUG 321985: During xdr decoding of atoms avoid creation of JSString for
the already existing atoms. r=brendan


git-svn-id: svn://10.0.0.236/trunk@189945 18797224-902f-48f8-a5cc-f745e15eee43
2006-02-14 09:33:45 +00:00
mrbkap%gmail.com
0ddbe7986e Actually fill the setting cache when we get boolean properties. bug 324688, r=brendan
git-svn-id: svn://10.0.0.236/trunk@188631 18797224-902f-48f8-a5cc-f745e15eee43
2006-02-01 00:25:50 +00:00
igor%mir2.org
caf466b112 Bug 319719: JS scanner checks for keywords using pregenerated C source
avoiding the cost of atomizing keyword strings. This is an updated version
of the previous rather bad commit to address Makefile issues. r=brendan


git-svn-id: svn://10.0.0.236/trunk@188224 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-26 08:47:51 +00:00
igor%mir2.org
f553d13362 Bug 322772: I added js_EqualStrings which is a faster version of
js_CompareStrings when testing only for string equality. r=brendan


git-svn-id: svn://10.0.0.236/trunk@188223 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-26 08:01:54 +00:00
brendan%mozilla.org
b46c83ef22 Add JS_LeaveLocalRootScopeWithResult API (324592, r=mrbkap).
git-svn-id: svn://10.0.0.236/trunk@188222 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-26 07:19:25 +00:00
mrbkap%gmail.com
f1ab9ff32e bug 324422: Protect things from being garbage collected out from under us. r=brendan
git-svn-id: svn://10.0.0.236/trunk@188134 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-25 02:27:59 +00:00
igor%mir2.org
9e4fecd594 Reverting commit for bug 319719: Makefile changes broke too much builds.
git-svn-id: svn://10.0.0.236/trunk@188012 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-22 21:08:05 +00:00
igor%mir2.org
d7acf1f679 Bug 319719: JS scanner checks for keywords using pregenerated C source
avoiding the cost of atomizing keyword strings. r=brendan


git-svn-id: svn://10.0.0.236/trunk@187990 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-22 01:14:20 +00:00
mrbkap%gmail.com
b3cf1e2854 bug 319872: Don't free the sentinal value. r=brendan
git-svn-id: svn://10.0.0.236/trunk@187737 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-18 02:22:55 +00:00
brendan%mozilla.org
9034e67d63 Add missing null check (323338, r=mrbkap).
git-svn-id: svn://10.0.0.236/trunk@187623 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-14 01:09:42 +00:00
igor%mir2.org
f30f3386cc Implementing bug 322001:
JSFunction is shrinked via removal of nref field
and moving interreter-only or native-only fields into union. r=brendan


git-svn-id: svn://10.0.0.236/trunk@187167 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-09 08:26:26 +00:00
brendan%mozilla.org
75ff2136a6 Better GC_MARK_DEBUG code (315783, NPOTB but r=bz).
git-svn-id: svn://10.0.0.236/trunk@187060 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-06 06:32:11 +00:00
shaver%mozilla.org
4d8e4c5bd0 bug 315783: fix GC_MARK_DEBUG crash when marking E4X text nodes, r=mrbkap
git-svn-id: svn://10.0.0.236/trunk@187056 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-06 05:28:19 +00:00
brendan%mozilla.org
467d7aaec9 Remove e4x singleton entrainment hazards and hide naked * as value (322499, r=mrbkap).
git-svn-id: svn://10.0.0.236/trunk@187050 18797224-902f-48f8-a5cc-f745e15eee43
2006-01-06 02:08:35 +00:00
brendan%mozilla.org
9b98bff4c8 Respect the sacred 80th column.
git-svn-id: svn://10.0.0.236/trunk@186554 18797224-902f-48f8-a5cc-f745e15eee43
2005-12-24 07:03:26 +00:00
mrbkap%gmail.com
6670b4e952 bug 319872: Test for integer overflow while escaping stuff. r=brendan
git-svn-id: svn://10.0.0.236/trunk@186026 18797224-902f-48f8-a5cc-f745e15eee43
2005-12-13 23:18:03 +00:00
mrbkap%gmail.com
c52b3336a1 bug 232182: Allow SpiderMonkey to deal with UTF-8 strings (controlled by a define). Patch from Michael Daumling <daumling@adobe.com>. r=shaver
git-svn-id: svn://10.0.0.236/trunk@184170 18797224-902f-48f8-a5cc-f745e15eee43
2005-11-05 01:06:30 +00:00
brendan%mozilla.org
6486e3be4c Internal invocation result GC protection, after a patch from Igor (313952, r/sr=mrbkap/shaver).
git-svn-id: svn://10.0.0.236/trunk@183202 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-28 18:07:42 +00:00
brendan%mozilla.org
2f02d40a5a Fix xml_child to include leaf types (attributes, PIs, etc.) in its result (313799, r=mrbkap).
git-svn-id: svn://10.0.0.236/trunk@183144 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-27 21:48:20 +00:00
brendan%mozilla.org
db27dcb877 E4X ISO/ECMA-Edition-2 change to XML.prototype.child, plus common subroutining (313949, r=mrbkap).
git-svn-id: svn://10.0.0.236/trunk@183115 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-27 02:55:51 +00:00
brendan%mozilla.org
87b036c482 mrbkap's fix for 313799, r=me.
git-svn-id: svn://10.0.0.236/trunk@183045 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-26 08:34:13 +00:00
brendan%mozilla.org
69dba07d61 Check for cycles and throw an error (fix to ECMA-357 for Edition 2; 312692, r/sr=mrbkap/shaver).
git-svn-id: svn://10.0.0.236/trunk@182760 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-21 23:50:50 +00:00
brendan%mozilla.org
aaecbd349f Must use js_CheckAccess if you use js_SetProtoOrParent (313080, r/sr=mrbkap/shaver).
git-svn-id: svn://10.0.0.236/trunk@182664 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-21 00:05:47 +00:00
brendan%mozilla.org
4e0f9f6b7d Make __noSuchMethod__ work with E4X (312196, r/sr=mrbkap/shaver).
git-svn-id: svn://10.0.0.236/trunk@182305 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-15 07:30:59 +00:00
brendan%mozilla.org
2adc8e4a6b Add missing first [ in CDATA literal generator (312064, r=mrbkap).
git-svn-id: svn://10.0.0.236/trunk@182068 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-12 05:50:51 +00:00
brendan%mozilla.org
dea8133b7b Use local roots in XMLToXMLString (311580, r=mrbkap).
git-svn-id: svn://10.0.0.236/trunk@181889 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-10 03:28:14 +00:00
mrbkap%gmail.com
f4d284ad5b bug 311024: Make sure eval grabs the right scope object. r=brendan sr=jst
git-svn-id: svn://10.0.0.236/trunk@181803 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-08 00:28:45 +00:00
brendan%mozilla.org
6a3c02122b Force XML option on inside a literal list or element, to allow comments and CDATA (311157, r/sr=mrbkap/shaver).
git-svn-id: svn://10.0.0.236/trunk@181670 18797224-902f-48f8-a5cc-f745e15eee43
2005-10-05 19:58:58 +00:00
mrbkap%gmail.com
1cd6ddfd2e bug 309897: Make sure to not shrink XML arrays when doing so would shrink the capacity to less than the needed size. Patch from Brendan. r/sr=mrbkap/shaver
git-svn-id: svn://10.0.0.236/trunk@181235 18797224-902f-48f8-a5cc-f745e15eee43
2005-09-29 23:31:36 +00:00
brendan%mozilla.org
4923287c8d Oops.
git-svn-id: svn://10.0.0.236/trunk@180690 18797224-902f-48f8-a5cc-f745e15eee43
2005-09-20 21:53:17 +00:00
brendan%mozilla.org
69e961c489 Enable E4X while preserving the HTML script tag content 'comment hiding hack' of yore (309242, r/sr=mrbkap/shaver).
git-svn-id: svn://10.0.0.236/trunk@180689 18797224-902f-48f8-a5cc-f745e15eee43
2005-09-20 21:48:26 +00:00
brendan%mozilla.org
27933f94c0 Fix two GC scanning holes: local root stack gaffe (only top scope was marked), E4X filtering predicate operand stack hiding (fixed to share instead of push; both from bug 308111, r/sr=mrbkap/shaver).
git-svn-id: svn://10.0.0.236/trunk@180266 18797224-902f-48f8-a5cc-f745e15eee43
2005-09-15 01:48:16 +00:00
mrbkap%gmail.com
51a7e8ecba bug 305583: Toggle on the XML option, even if the script wasn't invoked with it when the XMLList constructor is used. r=brendan
git-svn-id: svn://10.0.0.236/trunk@178705 18797224-902f-48f8-a5cc-f745e15eee43
2005-08-23 17:10:47 +00:00
brendan%mozilla.org
306d9c4922 Have to check this instanceof XML in natives after all (305335, r/sr=mrbkap/shaver, a=me).
git-svn-id: svn://10.0.0.236/trunk@178641 18797224-902f-48f8-a5cc-f745e15eee43
2005-08-22 22:20:35 +00:00
brendan%mozilla.org
a5ee8dc118 Forgot this fix to the fix for 301956 -- wahhhh!
git-svn-id: svn://10.0.0.236/trunk@178315 18797224-902f-48f8-a5cc-f745e15eee43
2005-08-19 23:30:47 +00:00
jst%mozilla.jstenback.com
792744ce69 Landing the split window work, bug 296639. This change doesn't have full reviews yet, bzbarsky@mit.edu and shaver@mozilla.org have done partial reviews, but there's still more to look at. Given the current time constraint this is landed with reviews and followup changes that result to come after the initial checkin. a=drivers
git-svn-id: svn://10.0.0.236/trunk@176884 18797224-902f-48f8-a5cc-f745e15eee43
2005-07-30 20:57:07 +00:00
mrbkap%gmail.com
c5486f21c2 bug 301574: Allow XML mode to be enabled explicitly by the XML constructor. r+a=brendan
git-svn-id: svn://10.0.0.236/trunk@176462 18797224-902f-48f8-a5cc-f745e15eee43
2005-07-22 20:22:28 +00:00
brendan%mozilla.org
b3dc50ae81 Fix js_FilterXMLList to save and restore fp->spbase (301596, r+a=shaver).
git-svn-id: svn://10.0.0.236/trunk@176404 18797224-902f-48f8-a5cc-f745e15eee43
2005-07-21 19:14:30 +00:00
brendan%mozilla.org
8e2a6eb316 Fix * and function:: magic object management (299593, r+sr=bz/shaver).
git-svn-id: svn://10.0.0.236/trunk@175675 18797224-902f-48f8-a5cc-f745e15eee43
2005-07-06 04:49:35 +00:00
brendan%mozilla.org
e39a1d917e Nits picked for 294893 (thanks to bz for reminding me).
git-svn-id: svn://10.0.0.236/trunk@175470 18797224-902f-48f8-a5cc-f745e15eee43
2005-07-01 04:45:11 +00:00
brendan%mozilla.org
6efbc91649 Fix regression from 292903's first patch, which results in JS_DEFAULT_XML_NAMESPACE_ID being enumerated! Thanks to bc for noticing.
git-svn-id: svn://10.0.0.236/trunk@174722 18797224-902f-48f8-a5cc-f745e15eee43
2005-06-16 20:27:11 +00:00
brendan%mozilla.org
fd99a24062 Add JS_EnumerateResolvedStandardClasses, and fix a few lazy-standard-class-init glitches hindering it (292903, r=shaver, a=me).
git-svn-id: svn://10.0.0.236/trunk@174675 18797224-902f-48f8-a5cc-f745e15eee43
2005-06-16 04:24:03 +00:00
bzbarsky%mit.edu
71e216d36e Better version of last patch -- don't pin the atoms, and clean up nicely when
they're finalized so as not to crash.  Bug 294893, assumed future r=brendan,
a=drivers


git-svn-id: svn://10.0.0.236/trunk@173787 18797224-902f-48f8-a5cc-f745e15eee43
2005-05-26 17:21:29 +00:00