Andreas Gal
9d03f17cd2
Avoid JSArena as temp buffer in TraceRecorder::snapshot (variation of patch in bug 521880, r=me).
2009-10-12 22:41:08 -07:00
Andreas Gal
1eadb6d958
Backed out changeset 1a747dd43904 (bug 521880).
2009-10-12 18:00:48 -07:00
Andreas Gal
8f9daae9e4
Avoid JSArena as temp buffer in TraceRecorder::snapshot (521880, r=luke).
2009-10-12 14:40:06 -07:00
Luke Wagner
b290332e93
Bug 521081 - nested tree call guard checks the wrong state (r=gal)
2009-10-07 14:20:06 -07:00
David Mandelin
42af5f9b94
Backed out changeset 9cc88d291fc0
2009-10-05 18:31:10 -07:00
David Mandelin
e7d37eba3d
Bug 495331: trace JSOP_LAMBDA for non-null, non-heavyweight case, r=jorendorff,igor
2009-09-28 13:51:46 -07:00
Makoto Kato
2dc0ebc45c
Bug 515545 - Add EXECUTE_TREE_TIMER code for Windows x64. r=dvander
2009-10-04 17:03:18 +09:00
David Anderson
ab2f179aab
Static analysis fixes, recursion fallout (bug 520320, r=gal).
2009-10-02 17:55:57 -07:00
David Anderson
b21e218905
Fixed js_PopInterpFrame breaking arena LIFO requirement (bug 520210, r=brendan).
2009-10-02 13:52:54 -07:00
Robert Sayre
cea0319379
Merge mozilla-central to tracemonkey.
2009-10-01 14:08:25 -07:00
David Anderson
3e3b3a2362
Trace recursive function calls (bug 459301, r=gal).
2009-09-30 15:28:00 -07:00
David Anderson
5aeb5cef7e
Internalize and memoize FrameInfo pointers (bug 501398, r=brendan).
2009-09-30 13:00:16 -07:00
Brendan Eich
4bf4354638
High-level CSE for shape guards (518448, r=jorendorff).
2009-09-29 19:05:19 -07:00
David Anderson
019e8e15ce
Backed out changeset 911d01b21463
2009-09-29 16:24:59 -07:00
David Anderson
a64d9ec66a
Internalize and memoize FrameInfo structures (bug 501398, r=brendan).
2009-09-29 14:33:43 -07:00
Nicholas Nethercote
c70f7763f4
Bug 519156 - TM: fix the Tracker. r=gal.
2009-09-29 11:12:46 +10:00
Graydon Hoare
ce8212d362
Bug 518744 - TM: mark and rewind dataAlloc, r=gal.
...
--HG--
extra : rebase_source : fd9eac329fc70879ad5b45a267152937fed693fb
2009-09-25 17:20:01 -07:00
Luke Wagner
1fbbde3ae1
Bug 519004 - make deep abort danger more clear and present (r=dvander)
2009-09-28 09:03:21 -07:00
Robert Sayre
7e3d716d38
Backed out changeset f5ea964eb493sdf
2009-09-26 18:55:25 -07:00
Brendan Eich
69fd06459c
High-level CSE for shape guards (518448, r=jorendorff).
2009-09-25 14:07:08 -07:00
Robert Sayre
14ef91c61f
Merge mozilla-central to tracemonkey.
2009-09-25 11:55:38 -07:00
Nicholas Nethercote
7ca135d39f
Bug 518747 - NJ merge: get rid of NJ_LOG2_PAGE_SIZE et al. r=graydon.
2009-09-25 16:01:55 +10:00
Luke Wagner
668372111c
Bug 517973 - remove deep abort, fix blacklisting bug
2009-09-23 18:21:41 -07:00
Graydon Hoare
f0b694edca
Bug 517083 - Fix performance regression, r=dvander.
...
--HG--
extra : rebase_source : 57e132434da8c652c41ffa889aa2002eeeb4698c
2009-09-23 15:12:58 -07:00
David Mandelin
99fb23d064
Bug 511695: Fix JS warnings in MSVC8, r=brendan
2009-09-23 11:16:30 -07:00
Graydon Hoare
a18f57ecfd
Bug 495734 - NJ: don't store non-LIR data in LIR buffers, r=gal.
...
--HG--
extra : rebase_source : 4a73fd251f3077fe3623ef1341a8aa3729a4e8bf
2009-09-22 16:06:52 -07:00
Graydon Hoare
ccc6ad4904
Bug 517083 - TM: introduce a temp allocator for allocations during recording and compilation, r=gal.
2009-09-22 12:36:20 -07:00
David Mandelin
10e9f4f6b8
Bug 517633: printf that can be called from trace, r=lw
...
--HG--
extra : rebase_source : 7bf61fae910feab40ef706717420e883ccafc4da
2009-09-22 15:02:50 -07:00
Graydon Hoare
e102fc5e1c
Bug 517299 - Allocator mismatch (calloc+delete) for class TraceRecorder and LirWriter, r=gal.
2009-09-21 14:06:42 -07:00
Graydon Hoare
963fd74e53
Bug 516620 - Kill off residue of MMgc, r=gal.
...
--HG--
extra : rebase_source : 1bd814f499014507fb60ad554687b12b9fe09a3e
2009-09-10 16:29:36 -07:00
Julian Seward
b214130415
Bug 503424 - Add built-in support for compiled-trace and -guard profiling, r=graydon.
2009-09-15 15:05:53 -07:00
Graydon Hoare
2521578c2d
Backed out changeset 35777195800a, perf regression.
2009-09-14 21:07:57 -07:00
Graydon Hoare
5d33edd2e9
Bug 516620 - Kill off residue of MMgc, r=gal.
2009-09-10 16:29:36 -07:00
Brendan Eich
eaabbf253c
Bug 516075 - Move shape into JSObjectMap from JSScope, const-ipate and use LIR_ldc* to get to it (r=jorendorff).
2009-09-14 20:29:46 -04:00
Andreas Gal
72c92b196f
Use a single code cache for the JIT and the RegExp compiler (515852, r=dmandelin).
2009-09-12 23:04:27 -07:00
Brendan Eich
1f562c224a
Bug 516069 - Common the side exit used with shape guards (r=gal).
2009-09-11 15:44:30 -07:00
Benjamin Smedberg
124c9c8007
Bug 517278 - JS_REQUIRES_STACK errors (jsobj.cpp and jstracer.cpp), r=jorendorff
2009-09-18 09:36:51 -04:00
David Mandelin
0fcb7aaa76
Bug 500857: show JIT reset events in tracevis, r=nnethercote
...
--HG--
extra : rebase_source : a9be775abf15badf980e3be3535e99b30ce5c235
2009-09-10 16:06:34 -07:00
David Anderson
fdcaf63219
Greatly improved tracer x64 compliance and compatibility (bug 513844, r=gal).
2009-09-10 15:38:18 -07:00
Andreas Gal
bd58a78c21
Set nativeVp immediately before the native call (514999, r=mrbkap).
2009-09-09 17:38:07 -07:00
David Mandelin
a8c3972f23
Bug 504797: give arguments objects created on trace a private value that can be used to look up argument values in the native stack, r=gal
2009-09-09 11:40:21 -07:00
David Anderson
7b69388035
Fixed a hack that created temporarily ill-typed LIR, i2f(i2f) (bug 503427, r=gal).
2009-09-08 16:47:55 -07:00
Igor Bukanov
6bfe4771cc
bug 513190 - avoiding jsint tagging of the private slot data. r=jorendorff
2009-09-05 19:59:11 +04:00
Andreas Gal
27381a9ab1
Reset nativeVp only after the native call returns (513981, r=mrbkap).
2009-09-04 17:00:08 -07:00
Luke Wagner
6bfe9f9329
Bug 460904 - rename/tweak JSTraceableFunction (take 2)
2009-09-04 13:44:31 -07:00
Luke Wagner
3087376a4d
Backed out changeset 94da2f68afdb
2009-09-04 11:35:52 -07:00
Luke Wagner
52d822b6d2
Bug 460904 - rename/tweak JSTraceableFunction (r=jorendorff)
2009-09-03 11:57:14 -07:00
Brendan Eich
cce4dce512
Join lambdas assigned or initialized as methods to the compiler-created function object if we can, with a read barrier to clone on method value extractions other than call expressions (471214, r=jorendorff).
2009-09-03 14:41:19 -07:00
Nicholas Nethercote
e409ab2bb3
Bug 512596 - TM: improve TMFLAGS=help message. r=jseward.
2009-09-01 10:08:46 +10:00
Andreas Gal
4394dfd752
Don't allocate in Queue constructor by default (513497, r=shaver).
2009-08-29 18:57:57 -07:00
Andreas Gal
c85b53a42a
Backout bug 512617.
2009-08-29 18:46:27 -07:00
Andreas Gal
64328a8e94
Consolidate object creation on trace (512617, r=jorendorff).
2009-08-29 12:36:00 -07:00
Andreas Gal
14813a11f4
Remove some TM-only fields from nanojit (513187, r=dvander).
2009-08-28 14:36:37 -07:00
Igor Bukanov
b919139e8d
bug 511425 - removal of JSObjectOps.(get|set)RequiredSlot. r=brendan
2009-08-28 09:53:26 +04:00
Andreas Gal
317b5f2e3a
Remove explicitSavedRegs and loop hacks from nanojit (513139, r=dvander).
2009-08-27 18:46:45 -07:00
David Mandelin
368b225d78
Bug 505591: trace JSOP_NAME for returned closures, r=dvander
...
--HG--
extra : rebase_source : 496a99feeb0fee876cd72b24e1e753d9b41ea51f
2009-08-27 15:40:37 -07:00
David Mandelin
a086bb3ab9
Bug 510642: traverse scope chain correctly for traced JSOP_BINDNAME, r=jimb
2009-08-27 15:07:46 -07:00
Luke Wagner
a5b9103165
Bug 419743 - Add JSOP_CONCATN (r=waldo)
2009-08-18 15:43:17 -07:00
Jason Orendorff
092787084d
Bug 507683 part 2 - Avoid lookup on trace when calling a native getter with no slot. r=gal.
...
--HG--
extra : rebase_source : 38c552c3c1daad34bda66fc9ced2ec31d954eef0
2009-08-25 15:02:58 -07:00
Jason Orendorff
c45d09492c
Bug 507683 part 1 - Trace native getters. r=gal.
...
--HG--
extra : rebase_source : f73754b7946e3d525b11f5973c61e22bd2f56dba
2009-08-25 15:01:29 -07:00
David Anderson
bed67e910c
Removed callee from FrameInfo, and fixed upvar bugs in stack reconstruction (bug 510300, r=dmandelin,brendan).
2009-08-21 08:09:47 -07:00
Graydon Hoare
503c025d90
Bug 511309 - Delete class Fragmento and all uses of it, r=dvander.
...
--HG--
extra : rebase_source : 47047589288ac0758e0068307b5a8f393db97606
2009-08-20 17:22:47 -07:00
Graydon Hoare
ebe9c3f20b
Bug 511237 - Remove primary use of Fragmento from jsregexp, r=dmandelin.
2009-08-18 15:32:54 -07:00
David Mandelin
6e0758faf2
Trailing whitespace cleanup, no_r=me
2009-08-20 15:21:14 -07:00
David Anderson
57bffd92e3
Consolidated inner global typemap completion logic and fixed a bug when extending nested exits (bug 510518, r=gal,sayrer).
2009-08-20 13:06:27 -07:00
David Anderson
16fa18ade6
Added trace tree visualizer (bug 506714, r=gal).
2009-08-19 16:11:59 -07:00
Jason Orendorff
5d4cab246e
Bug 507446 - TM: use return values instead of outparams for box_jsval, unbox_jsval. r=dmandelin.
...
--HG--
extra : rebase_source : e49f886c1723d90064cd11da0959f4a1e0fe23f4
2009-08-19 17:00:18 -05:00
Nicholas Nethercote
c035e918c7
Bug 511012 - TM: don't use addName() and insStorei() together. r=gal.
2009-08-18 09:27:48 +10:00
David Mandelin
46854c2304
Bug 509599: on trace, call putArguments when returning from JS function via either return or stop, r=jorendorff
2009-08-17 15:29:09 -07:00
Andreas Gal
5d82186f20
Don't flush the code cache every time we GC (506117, r=brendan).
2009-08-17 14:50:57 -07:00
David Mandelin
184e8b155d
Backed out changeset 238e8b557e4f: causing tjss orange
...
--HG--
extra : rebase_source : 49cfd40e67221067c45c85a5b96db39d22be1f67
2009-08-14 19:17:00 -07:00
David Mandelin
a5a7e420d0
Bug 505591: trace JSOP_NAME for returned closures, r=dvander
2009-08-14 16:02:47 -07:00
Jason Orendorff
56b69d0816
Bug 508051 part 1 - Avoid imacros for JSOP_SETELEM. Re-landing per comment 8. r=gal.
2009-08-14 15:47:04 -05:00
Andreas Gal
25b9ed2a98
Backed out bug 508051. Fails trace-test/mandelbrot.
2009-08-13 04:08:34 -07:00
Jason Orendorff
cc37757a20
Bug 508051 part 1 - Avoid imacros for JSOP_SETELEM. r=gal.
2009-08-12 15:27:01 -05:00
David Anderson
869bf43660
Cleaned up and refactored AttemptToStabilizeTree (bug 509089, r=gal).
2009-08-10 22:15:52 -07:00
David Mandelin
86609aa9f8
Bug 508187: do stack push after all guards when tracing JSOP_INCNAME et al, r=gal
2009-08-10 13:03:50 -07:00
Graydon Hoare
b8154cc364
Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal.
2009-07-15 16:50:01 -07:00
David Anderson
829a35875e
Cleanup of deduceTypeStability and closeLoop, take two (bug 497948, r=gal+sayrer).
2009-08-07 14:08:23 -07:00
David Mandelin
c1486b955e
Bug 508178: guard that arguments object refers to the same frame if used on trace, r=jorendorff
2009-08-05 12:39:10 -07:00
David Mandelin
bcef71432b
Bug 507449: Trace JSOP_GETXPROP, r=gal
2009-08-04 11:01:13 -07:00
Jason Orendorff
2df7b71611
Bug 507665 - Avoid imacros for JSOP_GETELEM and JSOP_CALLELEM. r=gal.
2009-08-03 11:38:28 -05:00
David Mandelin
bac4a5e107
Bug 495330: trace JSOP_INCNAME and related ops for closures, r=gal
2009-07-31 17:52:30 -07:00
Graydon Hoare
2e92fcbbe3
Backed out changeset d0be9284ea67
2009-07-30 14:28:26 -07:00
Mark Steele
ff339aa3b6
Bug 497999: collect context-specific TraceVis data in JS objects, r=jorendorff
2009-07-30 11:48:02 -07:00
David Mandelin
f7a94971a0
Bug 507053: fix on-trace scope chain computation for JSOP_BINDNAME, r=gal
2009-07-30 11:34:35 -07:00
Jason Orendorff
9a9d7d84d3
Bug 507156 - JSOP_TABLESWITCH always aborts, sometimes without an abort message. r=dmandelin.
2009-07-30 13:06:15 -05:00
Graydon Hoare
caf3859643
Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal.
2009-07-15 16:50:01 -07:00
Jason Orendorff
f0ca3c8bd9
Bug 506982 - Fix up jstracer style. r=Waldo.
2009-07-29 11:58:19 -05:00
David Mandelin
cfb0d1fd1b
Bug 506821: clean up trailing whitespace, r=brendan
2009-07-27 18:40:12 -07:00
Jason Orendorff
08e0a53af4
Bug 503408 - Trace native setters. r=brendan.
2009-07-27 16:47:34 -05:00
David Mandelin
e8a3e752f8
Bug 496240: trace JSOP_NAME for active (on-stack) closures, r=gal
2009-07-21 16:22:36 -07:00
Robert Sayre
53d13821c6
Merge mozilla-central to tracemonkey.
2009-07-16 11:46:05 -04:00
Neil Rashbrook
7d7253ddaa
Bug 501609 Make js/src build with VC7.1 r=graydon
2009-07-15 20:31:26 +01:00
Wesley W. Garland
ee6d0ceed7
Bug 504119 - jstracer.h no longer compiles debug builds on gcc < 4. r=jorendorff.
...
--HG--
extra : rebase_source : 4ea454201e93f26d87a5707d5b91c295e828cd2f
2009-07-14 19:15:23 -05:00
Robert Sayre
d2f01e78db
merge backout
2009-07-14 00:26:05 -04:00
Robert Sayre
663a2781d7
Backed out changeset b6a8110a858f
2009-07-14 00:25:35 -04:00
Blake Kaplan
d142d70ad5
Bug 503286 - Use the right sp for sp_adj to account for tree calls fiddling with state.sp after we've deep bailed. r=jorendorff
...
--HG--
extra : rebase_source : 2d3e2237ef82d4ea5980b4ece9b484344f450036
2009-07-13 15:44:33 -07:00
David Anderson
3afb790b55
Refactored deduceTypeStability/closeLoop for a general cleanup needed for recursion (bug 497948, r=gal+sayrer).
2009-07-13 13:26:27 -07:00
David Mandelin
975f74c278
Bug 453730: trace JSOP_ARGUMENTS, r=gal
2009-07-08 11:16:41 -07:00
Jason Orendorff
e0ee1845cf
Give the LIR instruction for loading obj->map the name "map" in debug output. r=brendan in bug 498565 comment 18.
...
--HG--
extra : rebase_source : 3c7954123b4b89d0f38b7e6c2397749a9156e342
2009-07-07 06:20:22 -05:00
Andreas Gal
16a60091ed
Shortcut lookup flag calculation when on trace (bug 502145, r=igor).
2009-07-06 06:42:13 +02:00
David Anderson
cf5bda02f1
Nits to Queue<T>, assert valid index and support 0 starting size (bug 500554, r=gal).
2009-06-25 17:14:54 -07:00
Jeff Walden
2d9f80b8df
Windows bustage fix, r=foopy
...
--HG--
extra : rebase_source : 3e6a65cb262f12fe73b3ef7657a1f38c9673ad99
2009-06-25 16:36:25 -07:00
Jeff Walden
8b7bef6dd0
Bug 497207 - Define |enum JSTraceType| and stop overloading JSVAL_* for trace-time types. r=jorendorff
...
--HG--
extra : rebase_source : bb72ca3ad8fab4d0b2affca611630bf5a9559531
2009-06-10 16:58:02 -07:00
David Anderson
3d4b953291
Avoid pedantic errors about trailing commas in lists (build bustage fix).
2009-06-25 16:02:29 -07:00
David Anderson
b6436e2572
Print exit names instead of numbers (bug 500522, r=gal).
2009-06-25 15:32:50 -07:00
Julian Seward
b96eed42da
Bug 494864 - Make nanojit debug output easier to follow, r=graydon.
2009-06-24 20:32:00 -07:00
Graydon Hoare
0f04cb5c35
Bug 496674 - Replace FORALL macros with template functions and visitors, take 2, r=gal.
2009-06-19 18:48:05 -07:00
Andreas Gal
6e96f166d2
Check for end of proto chain when walking it (499169, r=mrbkap).
2009-06-23 19:22:54 -07:00
Graydon Hoare
859a94d6ec
Backed out changeset 5e1b444c803c, broke static analysis tinderbox.
2009-06-23 16:58:30 -07:00
Graydon Hoare
c8b2433196
Bug 496674 - Replace FORALL macros with template functions and visitors, r=gal.
2009-06-19 18:48:05 -07:00
Nicholas Nethercote
e2a97e3f4c
Bug 496448: TraceVis TraceMonkey performance visualization, r=brendan
2009-06-16 09:30:01 +01:00
Jason Orendorff
52fe5a97ba
Bug 497618 - Change JSString macros to methods. r=Waldo.
2009-06-10 20:29:44 -05:00
Andreas Gal
659a7a9b6c
Implement oracle-based speculative fmod/fdiv/fmul demotion (474443, r=graydon,dvander).
2009-06-12 08:33:32 -07:00
David Mandelin
3db63853e3
Bug 496922: do upvars correctly when the function defining the upvar was called with extra args, r=brendan,gal
2009-06-09 11:49:53 -07:00
David Mandelin
344e868872
Bug 496251: use up-to-date typemap when getting upvar from trace entry native frame, r=gal
2009-06-08 10:48:18 -07:00
Andreas Gal
3882ad59b6
Merge.
2009-06-04 20:12:44 -07:00
Andreas Gal
7d8559c586
Backed out changeset 2ad658e9f42a (bug 495958, re-opened).
2009-06-04 20:12:31 -07:00
David Mandelin
80a97eb5d3
Bug 496319: correctly unpack FrameInfo::argc, r=mrbkap
2009-06-04 15:19:59 -07:00
Andreas Gal
9ded7b0c3e
Capture missing globals from current environment, not the tree entry map when extending a side exit (495958, r=graydon).
2009-06-03 12:43:38 -07:00
David Mandelin
a90aee411c
Bug 494269: trace JSOP_LAMBDA_FC, r=brendan,gal
2009-06-03 11:19:20 -07:00
David Mandelin
5baa8fe491
Bug 495773: include trace entry JSStackFrame in upvar search, also remove obsolete union from FrameInfo, r=gal
2009-06-01 14:50:02 -07:00
David Mandelin
504424ebf3
Bug 495566: fix stack offset calculations for traces that start at top level, r=gal
2009-05-29 18:50:35 -07:00
David Mandelin
9af4ca2612
Bug 493512: correcting native stack navigation arithmetic, r=gal
2009-05-20 18:57:42 -07:00
Andreas Gal
0d2b989430
Update JSSLOT_ARRAY_COUNT when emitting array constructor code on trace (493255, r=jorendorff).
2009-05-18 15:56:11 -07:00
Andreas Gal
40284299a7
Fix compiler warning (493345, r=brendan).
2009-05-15 21:01:22 -07:00
Blake Kaplan
774d6933f4
Bug 492912 - Clean up the way that TraceRecorder::elem interacts with the rest of the world. r=gal
2009-05-15 15:41:41 -07:00
David Mandelin
112ce8b24b
Bug 458838: enable tracing of upvar accesses that go outside the current trace to interpreter state, r=gal
2009-05-11 18:05:44 -07:00
Andreas Gal
4778325174
Ensure that cx->interpState is always accurate by maintaing a stack (490776, r=jorendorff).
2009-05-11 17:25:38 -07:00
David Mandelin
d6c2eeddf4
Bug 491620: make traces specialized for argc, r=gal
2009-05-11 15:57:28 -07:00
Andreas Gal
5f2681ef36
Bug 489836 - TM: chiptune causes Assertion failure: \!ti->typeMap.matches(ti_other->typeMap)
2009-05-11 12:20:41 -04:00
jorendorff
93c6d226d3
Record all calls to native functions (487134, r=gal, brendan).
2009-05-05 14:26:06 -07:00
Jim Blandy
56af1e088d
Bug 488018: Propagate errors from tracer to interpreter. r=igor
...
Rename JSMonitorRecordingStatus to JSRecordingStatus. The JSMRS_
prefix becomes JSRS_, accordingly.
Make 'record_' functions return JSRecordingStatus, not bool. 'false'
becomes 'JSRS_STOP'; 'true' becomes 'JSRS_CONTINUE'. Since subsequent
patches will begin to use more than two values (the next assigns
meaning to JSRS_IMACRO), take care to propagate values to callers
accurately.
Define a new recording status, JSRS_ERROR. Return it from recording
functions when appropriate. Check for it at appropriate bottlenecks
in tracer and interpreter.
ABORT_TRACE becomes one of:
. ABORT_TRACE, for when we're simply aborting the recording process
. ABORT_TRACE_ERROR, for aborting due to an error
. ABORT_TRACE_CV, for producing an error message and returning something
other than JSRS_STOP --- some contexts require boolean values.
Conditionally provide an alternative definition for the
JSRecordingStatus type that cannot be converted to 'bool', so that we
can use the C++ compiler to catch improperly converted code.
Use recording function return value for imacro invocation. Eliminate
the JSFRAME_IMACRO_START frame flag. Instead, return JSRS_IMACRO
directly from recording functions.
2009-04-30 17:30:46 -07:00
Andreas Gal
cafa156d52
We don't cache access to shared properties in the property cache (490666, r=igor,brendan).
2009-04-30 15:52:13 -07:00
Andreas Gal
776395aee0
Eliminate test_property_cache_direct_hit (490370, r=jorendorff).
2009-04-27 16:01:52 -07:00
Andreas Gal
a89bbaad23
Stay on trace when reading holes from dense arrays (489899, r=brendan).
2009-04-24 16:28:21 -07:00
Andreas Gal
a51f22dbdf
Need an API exposed to control code cache size (474497, r=bent,brendan, sr=mrbkap).
2009-04-22 16:52:59 -07:00
Andreas Gal
c5c7bd2f6c
Trace getting String.length (484332, r=brendan).
2009-04-21 18:56:24 -07:00
Jeff Walden
c9680230c4
Bug 473117 - Rejigger how guards use side exits, and fix an erroneous comment. r=graydon
2009-04-18 16:47:23 -07:00
Jason Orendorff
4dd9ad09ef
Bug 487845 - TM: After deep-bailing, we can lirbuf->rewind() and then return to a dead code page. r=gal.
...
--HG--
extra : rebase_source : b7de71b526d45c7caed1982fba80c65763a0a9c6
2009-04-15 09:47:02 -05:00
Andreas Gal
c11974bb60
Backed out changeset 4c157cfe2289 (bug 487845).
2009-04-14 21:28:40 -07:00
Jason Orendorff
0616f91d10
Bug 487845 - TM: After deep-bailing, we can lirbuf->rewind() and then return to a dead code page. r=gal.
2009-04-14 08:45:37 -05:00
Brendan Eich
26a5b7f3fc
Bug 487563 - Crash [@ js_Interpret] (r=mrbkap).
2009-04-09 18:44:54 -07:00
Jason Orendorff
b5d4ba583e
Bug 487676 - Nesting deep-aborting trace calls don't work. r=gal.
...
--HG--
extra : rebase_source : 436164485bd5e981e5ae8997eed2c371f3ecd77b
2009-04-09 18:07:00 -05:00
Jason Orendorff
a613c0d579
Backout changeset 143e997c858e (bug 484693) because it caused crashes on Mac tinderboxen.
2009-04-07 17:07:11 -05:00
Graydon Hoare
163d74068e
Bug 484693 - Remove uses of alloca, r=gal.
2009-04-07 13:47:36 -07:00
Brendan Eich
ec9f3ae4a0
Another static analysis patch (I hope the last; for 452498).
2009-04-05 21:51:42 -07:00
Brendan Eich
962b187fe5
upvar2, aka the big one take 2 (452598, r=mrbkap).
2009-04-05 21:17:22 -07:00
Andreas Gal
fa2e6466b2
Bug 479110 - TM: avoid frequent mismatch exits. r=brendan
2009-04-04 17:23:34 -04:00
Andreas Gal
3c19b8b7fc
Merge.
2009-04-04 10:15:04 -07:00
Andreas Gal
706120c0fb
Backed out changeset 972c44aa9d1f (bug 452598).
2009-04-04 10:14:52 -07:00
Brendan Eich
7485baa00c
Merge.
2009-04-04 10:07:44 +01:00
Brendan Eich
5f4d9ff474
upvar2, aka the big one (452598, r=mrbkap).
2009-04-04 10:05:49 +01:00
Andreas Gal
8787072e96
Backed out changeset b512be855093 (bug 484693). See bug for details.
2009-04-04 01:06:04 -07:00
Graydon Hoare
a2d4d5a779
Bug 484693 - Remove uses of alloca, r=gal.
2009-04-03 16:30:46 -07:00
Andreas Gal
a4f3bf56a6
Don't try to abort tracing after a successful compilation (486436, r=brendan).
2009-04-02 14:47:57 -07:00
Graydon Hoare
5689ffc3f8
Bug 474529 - Avoid artificial OOM conditions, r=gal.
2009-03-31 20:51:01 -07:00
Andreas Gal
78ced670dd
specialize code for a specific global object, not just a global object shape (480905, r=graydon).
2009-03-31 11:49:44 -07:00
Andreas Gal
bd810801e3
maintain globalShape in VMFragment only (486049, r=graydon).
2009-03-31 11:43:30 -07:00
Igor Bukanov
a8094a7903
bug 437325 - JSThread is no longer shared between JSRuntime instances. r=brendan
2009-03-24 13:07:35 +01:00
Jeff Walden
136daf85e6
Bug 484495 - new String(obj) asserts when tracing. r=brendan, r=gal
2009-03-22 12:49:15 -07:00
Igor Bukanov
f28d80b499
Backed out changeset e117c22cc1d1 - the landed patch for bug 437325 has a shutdown leak.
2009-03-22 10:15:27 +01:00
Igor Bukanov
a61176553e
bug 437325 - JSThread is no longer shared between JSRuntime instances. r=brendan
2009-03-22 10:07:14 +01:00
Andreas Gal
47a36bca0d
Property close loops even in the presence of partially constant loop conditions (482800, r=brendan).
2009-03-21 01:07:51 -07:00
Andreas Gal
43feef625d
Support calling arbitrary JSFastNatives from trace (463238, r=brendan).
2009-03-20 18:52:11 -07:00
Vladimir Vukicevic
d317d0075d
b=480796; detect whether ARM chip has VFP and/or v6t2 instructions; r=gal
2009-03-20 15:53:33 -07:00
Andreas Gal
65c3cf58a6
Backed out changeset e71cb3993380 (bug 479110).
2009-03-17 21:50:57 -07:00
Andreas Gal
771582b7b4
Extend tree when unboxing returns a different type (479110, r=jwalden).
2009-03-17 20:00:10 -07:00
Andreas Gal
1af13483ea
Eliminate separate global frame and merge it with InterpState (482377, r=brendan).
2009-03-17 17:29:58 -07:00
Andreas Gal
7da88f37bd
Backed out changeset 186ae511d5f2 (static analysis annotation only, no bug).
2009-03-17 15:55:06 -07:00
Andreas Gal
43debacfae
Remove unnecessary JS_REQUIRES_STACK from guardNotGlobalObject (rs=brendan).
2009-03-17 15:44:50 -07:00
Andreas Gal
210b2d31e2
Try harder to trace array access with non-int / non-string index (478525, r=brendan).
2009-03-17 15:39:42 -07:00
Jim Blandy
debdb32ef3
Bug 480132: Clone lexical blocks only when needed. r=igor
...
Terminology:
A "script block" is an object of class Block allocated by the byte
compiler and associated with a script. Script blocks are never
modified, and may be used as a prototype for a "closure block":
A "closure block" is an object of class Block that holds variables
that have been closed over (although we actually leave the variables
on the stack until we leave their dynamic scope). A closure block is
a clone of a script block (its prototype is a script block).
Adjust the meanings of fp->blockChain and fp->scopeChain:
fp->blockChain is always the innermost script block in whose static
scope we're executing.
fp->scopeChain is the current scope chain, including 'call' objects
and closure blocks for those function calls and blocks in whose
static scope we are currently executing, and 'with' objects for with
statements; the chain is typically terminated by a global object.
However, as an optimization, the young end of the chain omits block
objects we have not yet needed to clone.
Closures need fully reified scope chains, so have js_GetScopeChain
reify any closure blocks missing from the young end of fp->scopeChain
by cloning script blocks as needed from fp->blockChain. Thus, if we
never actually close over a particular block, we never place a closure
block for it on fp->scopeChain.
Have JSOP_ENTERBLOCK and JSOP_LEAVEBLOCK always keep fp->blockChain
current. When JSOP_LEAVEBLOCK pops a block from fp->blockChain that
has been cloned on fp->scopeChain, pop fp->scopeChain as well.
Remove the JSFRAME_POP_BLOCKS flag, as it is no longer needed.
Ensure that the JIT won't have to create closure blocks or call
js_PutBlockObject; it can't handle those things yet. Note our current
script block when we begin recording. Abort recording if we leave
that block; we can't tell in advance whether it will need to be "put"
in future trace invocations. Leave trace if we call js_GetScopeChain
while in the static scope of lexical blocks. Remove JIT tests based
on JSFRAME_POP_BLOCKS.
Verify that generators capture the correct value for blockChain.
Add a constructor to JSAutoTempValueRooter for rooting JSObject
pointers.
2009-03-16 09:55:06 -07:00
Jim Blandy
74847db9cd
Back out 480132: orange on Linux ( http://tinderbox.mozilla.org/showlog.cgi?log=TraceMonkey/1237017748.1237029269.2403.gz&fulltext=1 )
2009-03-14 08:19:58 -07:00
Jim Blandy
bed3611385
Bug 480132: Clone lexical blocks only when needed. r=igor
...
Terminology:
A "script block" is an object of class Block allocated by the byte
compiler and associated with a script. Script blocks are never
modified, and may be used as a prototype for a "closure block":
A "closure block" is an object of class Block that holds variables
that have been closed over (although we actually leave the variables
on the stack until we leave their dynamic scope). A closure block is
a clone of a script block (its prototype is a script block).
Adjust the meanings of fp->blockChain and fp->scopeChain:
fp->blockChain is always the innermost script block in whose static
scope we're executing.
fp->scopeChain is the current scope chain, including 'call' objects
and closure blocks for those function calls and blocks in whose
static scope we are currently executing, and 'with' objects for with
statements; the chain is typically terminated by a global object.
However, as an optimization, the young end of the chain omits block
objects we have not yet needed to clone.
Closures need fully reified scope chains, so have js_GetScopeChain
reify any closure blocks missing from the young end of fp->scopeChain
by cloning script blocks as needed from fp->blockChain. Thus, if we
never actually close over a particular block, we never place a closure
block for it on fp->scopeChain.
Have JSOP_ENTERBLOCK and JSOP_LEAVEBLOCK always keep fp->blockChain
current. When JSOP_LEAVEBLOCK pops a block from fp->blockChain that
has been cloned on fp->scopeChain, pop fp->scopeChain as well.
Remove the JSFRAME_POP_BLOCKS flag, as it is no longer needed.
Ensure that the JIT won't have to create closure blocks or call
js_PutBlockObject; it can't handle those things yet. Note our current
script block when we begin recording. Abort recording if we leave
that block; we can't tell in advance whether it will need to be "put"
in future trace invocations. Leave trace if we call js_GetScopeChain
while in the static scope of lexical blocks. Remove JIT tests based
on JSFRAME_POP_BLOCKS.
Verify that generators capture the correct value for blockChain.
Add a constructor to JSAutoTempValueRooter for rooting JSObject
pointers.
2009-03-14 00:58:27 -07:00
Jim Blandy
d72dff994b
Back out 480132 fix; static analysis red
2009-03-14 00:57:54 -07:00
Jim Blandy
4778b96a85
Bug 480132: Clone lexical blocks only when needed. r=igor
...
Terminology:
A "script block" is an object of class Block allocated by the byte
compiler and associated with a script. Script blocks are never
modified, and may be used as a prototype for a "closure block":
A "closure block" is an object of class Block that holds variables
that have been closed over (although we actually leave the variables
on the stack until we leave their dynamic scope). A closure block is
a clone of a script block (its prototype is a script block).
Adjust the meanings of fp->blockChain and fp->scopeChain:
fp->blockChain is always the innermost script block in whose static
scope we're executing.
fp->scopeChain is the current scope chain, including 'call' objects
and closure blocks for those function calls and blocks in whose
static scope we are currently executing, and 'with' objects for with
statements; the chain is typically terminated by a global object.
However, as an optimization, the young end of the chain omits block
objects we have not yet needed to clone.
Closures need fully reified scope chains, so have js_GetScopeChain
reify any closure blocks missing from the young end of fp->scopeChain
by cloning script blocks as needed from fp->blockChain. Thus, if we
never actually close over a particular block, we never place a closure
block for it on fp->scopeChain.
Have JSOP_ENTERBLOCK and JSOP_LEAVEBLOCK always keep fp->blockChain
current. When JSOP_LEAVEBLOCK pops a block from fp->blockChain that
has been cloned on fp->scopeChain, pop fp->scopeChain as well.
Remove the JSFRAME_POP_BLOCKS flag, as it is no longer needed.
Ensure that the JIT won't have to create closure blocks or call
js_PutBlockObject; it can't handle those things yet. Note our current
script block when we begin recording. Abort recording if we leave
that block; we can't tell in advance whether it will need to be "put"
in future trace invocations. Abort recording if we call
js_GetScopeChain while in the static scope of lexical blocks. Remove
JIT tests based on JSFRAME_POP_BLOCKS.
Verify that generators capture the correct value for blockChain.
Add a constructor to JSAutoTempValueRooter for rooting JSObject
pointers.
2009-03-13 23:43:32 -07:00
Robert Sayre
8e061e35da
Backout patch for Bug 480132. Debug only nit fix busts static analysis compile.
2009-03-14 02:20:45 -04:00
Jim Blandy
40e8a7d560
Bug 480132. SpiderMonkey clones too many blocks into the heap. r=igor
2009-03-14 02:09:28 -04:00
Igor Bukanov
4b95050fe2
Backed out changeset 57de81309176 - bug 437325 - due to mochitest leaks on tinderbox
2009-03-13 18:36:46 +01:00
Igor Bukanov
3de011b9cd
bug 437325 - JSThread is no longer shared between runtimes. r=brendan
2009-03-13 12:36:21 +01:00
Igor Bukanov
75640ecce1
Backed out changeset 4159ebdfe31e to fix some typos in the patch
2009-03-13 12:21:04 +01:00
Igor Bukanov
8eeedd9647
bug 437325 - JSThread is not shared between runtimes. r=brendan
2009-03-13 12:10:34 +01:00
Graydon Hoare
b65177a23f
Bug 482263 - Avoid re-entering recorder while deep aborting, r=mrbkap.
2009-03-12 20:14:51 -07:00
Andreas Gal
52cc17234c
Check for non-stub getters/setters in SETNAME and SETPROP and invoke SetPropHit after setting the property in INITPROP (481989, r=brendan).
2009-03-07 01:25:37 -08:00
Andreas Gal
b18ca034e3
Better coordination of nested tree recording (481793, r=dmandelin).
2009-03-06 17:25:04 -08:00
Andreas Gal
3067959f6b
Guard that we don't have to re-brand when writing a function into a slot if we didn't do so at recording time (481246, r=brendan).
2009-03-03 14:34:48 -08:00
Andreas Gal
1cbf259c3c
Improve blacklisting (479109, r=graydon).
2009-02-25 18:47:22 -08:00
David Anderson
10ded87ae6
Fixed breakage of type stability guarantees between linked trees, and fixed using the wrong global typemap in LeaveTree (bug 476653, r=gal).
2009-02-24 22:52:09 -05:00
Andreas Gal
d8bfd089e8
Backout 479109. Breaks trace-tests.
2009-02-23 12:29:08 -08:00
Andreas Gal
8ee9d2df93
Merge.
2009-02-23 11:34:50 -08:00
Andreas Gal
c36a8ab483
Improve blacklisting algorithm (479109, r=graydon).
2009-02-23 11:31:20 -08:00
Robert Sayre
12943580cf
Merge m-c to tracemonkey.
2009-02-23 12:44:23 -05:00
Jeff Walden
5d932d1110
Bug 478968 - TM: equalityHelper can call toString or valueOf erroneously when tracing obj == undefined. r=brendan
2009-02-21 23:33:58 -08:00
Benjamin Smedberg ext:(%2C%20Jason%20Orendorff%20%3Cjorendorff%40mozilla.com%3E)
d40f9751c8
Bug 476643 - JS_REQUIRES_STACK errors in nsXPCWrappedJSClass::CallMethod. Mozilla code uses some JS-internal APIs and needs to bail off trace before doing so. This shouldn't affect performance now becuase XPConnect methods are not traceable yet. r=mrbkap, sr=mrbkap.
2009-02-18 12:47:16 -06:00
Jason Orendorff
6431f3391d
Bug 476716 - Split ip_adj into two pointer fields, pc and imacpc. r=brendan.
2009-02-16 17:09:59 -06:00
Robert Sayre
695b4646c3
Merge tm to mc
2009-02-19 11:48:08 -05:00
Jim Blandy
ede7e6d142
Bug 391488: Eliminate PTRDIFF macro; delete jssttddef.h. r=jimb
...
Delete jsstddef.h, since its only remaining purpose is to make certain
Win16-specific definitions; we don't support Win16 any more. In
particular, we can just subtract pointers now, so the PTRDIFF macro is
unnecessary noise.
Most places get stddef.h via jstypes.h or some other header, so we can
just delete #inclusions of jstddef.h. The exception is jskwgen.h, so
there we explicitly include <stddef.h> instead.
2009-02-18 09:14:51 -08:00
Graydon Hoare
195e361c59
Bug 477425 - Back out lirbuf-based allocation of fragments and treeinfos, r=gal.
2009-02-11 21:59:57 -08:00
David Mandelin
39b9e72a0c
Bug 475115: LIR_jtbl: jump tables to implement jsop_tableswitch, r=gal,r=edwsmith
2009-02-11 17:40:27 -08:00
Graydon Hoare
8c3802fc54
Bug 466747 - Flush fragments for a JSScript when it is destroyed, r=gal.
2009-02-09 16:58:39 -08:00
Graydon Hoare
d459aeaced
Bug 477425 - Allocate TreeInfo and UnstableExit in LirBuffer, r=gal.
2009-02-09 16:49:25 -08:00
Andreas Gal
a4a912921f
If js_AddAsGCBytes is called from trace and wants to GC and we can bail off trace then do so instead of returning an error (476869, r=jorendorff).
2009-02-06 10:11:45 -08:00
Jeff Walden
2ec31b1171
Back out 21494181fdb8 and subsequent merges because they turned OS X red.
2009-02-05 15:42:45 -08:00
Andreas Gal
7f9ae88519
If js_AddAsGCBytes is called from trace and wants to GC and we can bail off trace then do so instead of returning an error (476869, r=jorendorff).
2009-02-05 14:43:17 -08:00
Jeff Walden
56f45fc062
Kill trailing whitespace in jstracer.h to kick a box out of a bogus orange
2009-02-04 22:57:25 -08:00
Jason Orendorff
e4c1fb1cfd
Bug 462027 - Bail off trace when reentering interpreter. r=gal.
2009-02-03 18:25:12 -06:00
Jason Orendorff
4e3f2cfd40
Revert to 07be1f190a3d. Revision 5f5c1cd63641 should not have been pushed.
2009-02-03 12:38:44 -06:00
Jason Orendorff
f6ffd1d380
[mq]: bug-462027-v9
2009-02-02 20:42:46 -06:00
Jason Orendorff
37f2985bdf
Bug 476177 - TM: cx->stackPool must not be accessed on trace. r=brendan.
...
--HG--
extra : rebase_source : 746d61b54aa38cbe18fe31bce4efcbbad4629678
2009-01-30 17:40:05 -06:00
Graydon Hoare
5219181495
Bug 475474 - Maintain globalSlots per global, not just one per JIT instance, r=danderson.
2009-01-29 15:59:52 -08:00
Jason Orendorff
6142999fde
Bug 468782 - TM: js_FastValueToIterator and js_FastCallIteratorNext can reenter (relanding with a bug fix). r=brendan. Note that this changeset alone does not fix the bug; an upcoming patch in bug 462027 completes the fix.
2009-01-28 09:24:35 -06:00
Andreas Gal
ecba1bc0b1
Update the tracker if the global object's dslots are reallocated at recording time (475645, r=brendan).
2009-01-28 00:12:37 -08:00
Andreas Gal
868cf7c72c
Backed out changeset ece63b96379b
2009-01-27 00:10:38 -08:00
Jason Orendorff
c0cc74fa99
Bug 468782 - TM: js_FastValueToIterator and js_FastCallIteratorNext can reenter. r=brendan. Note that this changeset alone does not fix the bug; an upcoming patch in bug 462027 completes the fix.
2009-01-27 00:19:58 -06:00
Graydon Hoare
170e5b5921
Bug 473688 - provide a 2-level hash map (global, pc) -> tree, r=gal.
2009-01-26 19:53:19 -08:00
Benjamin Smedberg
7ee0b42cb8
Bug 474996 - JS_REQUIRES_STACK violation in TraceRecorder::hasIteratorMethod, r=jorendorff
2009-01-26 14:26:24 -05:00
Andreas Gal
184fc63cd1
Backout bug 468782. Confirmed to leak.
2009-01-25 16:38:31 -08:00
Graydon Hoare
da2b8f5507
Bug 472180 - Move fragment hit and blacklist counts to hashtable in oracle, r=gal.
2009-01-23 14:24:50 -08:00
Jason Orendorff
c9961fe054
Bug 468782 - TM: js_FastValueToIterator and js_FastCallIteratorNext can reenter. r=brendan. Note that this changeset alone does not fix the bug; an upcoming patch in bug 462027 completes the fix.
2009-01-22 16:39:26 -06:00
Andreas Gal
570f41d3b7
Fix incorrect reliance on the identity of the global object on trace (474888, r=brendan, relanding).
2009-01-25 09:04:03 -08:00
Andreas Gal
1d277bc633
Backout all patches since last mozilla-central merge (Thu Jan 22 19:14:02 2009 -500 by sayrer).
2009-01-25 02:58:22 -08:00
Andreas Gal
1b154f72a6
Merge.
2009-01-23 15:15:34 -08:00
Andreas Gal
920ecc2113
Backed out changeset 17663da1b840 (bug 462027).
2009-01-23 15:14:46 -08:00
Graydon Hoare
0b98b2e8cb
Bug 472180 - Move fragment hit and blacklist counts to hashtable in oracle, r=gal.
2009-01-23 14:24:50 -08:00
Jason Orendorff
9ff9140ae0
Bug 468782 - TM: js_FastValueToIterator and js_FastCallIteratorNext can reenter. r=brendan. Note that this changeset alone does not fix the bug; an upcoming patch in bug 462027 completes the fix.
...
--HG--
extra : rebase_source : 585d590aace159914629a786489b0883d23cf2a8
2009-01-22 16:39:26 -06:00
Andreas Gal
d940283d33
Fix incorrect reliance on the identity of the global object on trace (474888, r=brendan).
2009-01-22 17:58:18 -08:00
David Anderson
b3ff178462
Specialize trees to global types, so global type instability does not flush the cache (bug 469044, r=gal,brendan).
2009-01-22 01:45:19 -05:00
Jeff Walden
314cf39c41
Bug 472592 - unbox_jsval is infallible, make the signature reflect that. r=gal
2009-01-11 13:57:42 -08:00
Jeff Walden
179a1749fb
Despite the previous log message, the previous push was r=brendan
2009-01-10 15:25:03 -08:00
Jeff Walden
949fc3d056
Bug 466905 - Fix JSOP_NEWARRAY to be not-buggy and use it when possible. NOT REVIEWED YET
2009-01-10 12:15:08 -08:00
Graydon Hoare
8424af9530
Bug 472553 - Annotations required by jsstack.js analysis, r=jorendorff.
2009-01-07 14:14:51 -08:00
Jason Orendorff
7f92f10b08
Bug 468641 - TM: Add bytecode disassembly to JS_JIT_SPEW output (r=crowder)
2009-01-06 16:51:32 -06:00
Benjamin Smedberg
2e82fb25f7
No bug, TraceRecorder::tprint requires the stack, r=jorendorff on IRC
2009-09-29 13:24:37 -04:00
Robert Sayre
5dbce00686
Backed out changeset f5ea964eb493. (Brendan Eich — High-level CSE for shape guards (518448, r=jorendorff).
2009-09-26 08:16:58 -07:00
Andreas Gal
61a1479f3e
Don't try to deallocate the trace recorder from inside one of its own instance methods (472049, r=brendan).
2009-01-05 16:13:53 -08:00
Andreas Gal
8b28ae8610
Store frame state information in the code cache and merely put a pointer to it onto the native call stack (470375, r=danderson).
2009-01-01 17:55:43 -08:00
Jeff Walden
af717d86d5
Bug 470739 - Trace more == cases. r=gal
2008-12-26 14:48:33 -05:00
Igor Bukanov
5d5cb0738c
bug 469233 - using interrupt hook support in the interpreter for trace recording. r=brendan
2008-12-21 12:55:09 +01:00
Igor Bukanov
8062218e55
Backed out changeset 605fd1985d05 - more merge typos.
2008-12-21 12:50:36 +01:00
Igor Bukanov
1be7edd38e
bug 469233 - using interrupt hook support in the interpreter for trace recording. r=brendan
2008-12-21 12:31:38 +01:00
Igor Bukanov
635ca1d23a
Backed out changeset f13e2a2a5d66 - I was not careful when merging the unary op changes
2008-12-21 12:23:08 +01:00
Igor Bukanov
3388b615ce
bug 469233 - using interrupt hook support in the interpreter for trace recording. r=brendan
2008-12-21 00:16:41 +01:00
Jeff Walden
4710efd8a4
Bug 469942 - TM: 20% slower to compute unary +/-. r=brendan
2008-12-19 19:30:09 -08:00
Brendan Eich
90fd9c4313
Merge m-c into tm again.
2008-12-18 22:11:42 -08:00
Brendan Eich
9af4f618a7
Bug 470300 - "Assertion failure: StackBase(fp) + blockDepth == regs.sp" with |let| (r=gal).
2008-12-18 21:08:57 -08:00
Andreas Gal
bbf40348b6
Trace apply/call with an imacro (465214, r=brendan).
2008-12-18 19:20:47 -08:00
Jeff Walden
201e000573
Bug 470133 - TM: fails to trace case with a type mismatch. r=gal
2008-12-18 10:35:09 -08:00
Andreas Gal
3af573343f
Backed out changeset 95b210c2fc92 preemptively. Seems to crash the browser.
2008-12-17 23:09:26 -08:00