Commit Graph

647 Commits

Author SHA1 Message Date
Andreas Gal
efd9bd790e Implement ES Harmony Proxies (bug 546590, r=mrbkap). 2010-05-18 19:21:43 -07:00
Luke Wagner
e374a37e1c Remove explicit copy, ObjPtr 2010-05-17 22:15:51 -07:00
Luke Wagner
98a19c517d finish jsxml 2010-05-17 16:52:38 -07:00
Luke Wagner
36fb0452a3 fix jsiter, convert jsmath 2010-05-12 22:58:11 -07:00
Luke Wagner
588e08228c jsiter 2010-05-12 19:05:43 -07:00
Luke Wagner
4e6c52c52b New Tag scheme, no SetObject silliness 2010-05-12 16:36:10 -07:00
Luke Wagner
bd3571c1b5 Still recovering from rebase 2010-05-11 19:00:59 -07:00
Luke Wagner
6c0883c94f Merge from tracemonkey 2010-05-11 00:41:08 -07:00
Luke Wagner
4e71f5312b (unrebased) fat value patch 2010-05-10 22:01:31 -07:00
Chris Jones
84a3655756 Bug 551071: Suppress valgrind-reported "mismatched free()" (false alarm) of chromium objects by using mozalloc there (complements STL wrappers). Add a gross hack to prevent mozalloc macros from conflicting with methods in jscntxt.h. r=bent r=bsmedberg dependent-r=brendan 2010-06-04 18:16:34 -05:00
Luke Wagner
fb7ceb4c78 Bug 547851 - remove JSStackFrame::regs, JSStackFrame::callerFrame.sp (r=dvander) 2010-03-03 18:10:13 -08:00
Igor Bukanov
97039b9427 bug 561364 - removal of JSRuntime::gcLevel. r=jorendorff 2010-05-14 15:55:17 +02:00
Luke Wagner
bddd202c18 (unrebased) remove regs 2010-03-03 18:10:13 -08:00
Luke Wagner
24a4486456 (fake) remove-regs patch 2010-03-03 18:10:13 -08:00
Luke Wagner
9b49d62378 Bug 540706 - use contiguous buffer for stack frames and slots (r=waldo) 2010-03-03 17:52:26 -08:00
Igor Bukanov
307503fef7 bug 563345 - using js::HashMap for JSRuntime::threads. r=lw 2010-05-13 19:50:43 +02:00
Luke Wagner
6a6afd60ce Backed out changeset 23efaeb8652b 2010-05-13 02:21:27 -07:00
Luke Wagner
c82711e2b5 (unrebased) contiguous patch 2010-03-03 17:52:26 -08:00
Andreas Gal
b0f31bea3f No need to lookup parent/proto for iteration objects used for enumeration, and cache the last free iteration object for re-use (558058, r=brendan). 2010-04-08 10:55:58 -07:00
Jason Orendorff
08bfa47c56 Bug 553671 part 4 - RAII for JS_{LOCK,UNLOCK}_GC and JS_{KEEP,UNKEEP}_ATOMS. r=luke.
--HG--
extra : rebase_source : dfdfcdd3a602e12de1836068e2c9f16fce46d7b2
2010-04-08 07:54:18 -05:00
Andreas Gal
ecdd402081 Backed out changeset 61de331861af (bug 558058). 2010-04-08 09:02:34 -07:00
Andreas Gal
0eaa2c4331 No need to lookup parent/proto for iterator objects, and cache the last free one (bug 558058, r=brendan). 2010-04-08 07:53:09 -07:00
Andreas Gal
b0126e4074 Backed out changeset 687d1e4c213e (bug 557914). 2010-04-07 18:34:05 -07:00
Andreas Gal
d0f2401879 Remove gcIteratorTable (557914, r=Waldo). 2010-04-07 17:14:38 -07:00
Luke Wagner
81d7c2cbea Vector::resize should initialize new elements always; fixes AutoValueVector bug (r=Waldo) 2010-04-06 16:40:49 -07:00
Luke Wagner
0e23d73f7a (fake) contiguous patch 2010-03-03 17:52:26 -08:00
Andreas Gal
2004c301c3 fast object iteration (558754, r=brendan, CLOSED TREE). 2010-05-07 17:52:52 -07:00
Jeff Walden
00f6066393 Bug 552560 - Remove support for __parent__. r=mrbkap 2010-04-11 13:51:00 -07:00
Luke Wagner
d0cd28412f Bug 562991 - Change JS_SetTrap closure argument type from void* to jsval (r=brendan) 2010-04-30 17:34:54 -07:00
Nicholas Nethercote
deb78e392f Bug 562553 - TM: cache double-to-string conversions to speed up v8-splay.js. r=cdleary. 2010-04-29 17:17:24 -07:00
Andreas Gal
7bf56e15a7 Follow-up for 560358, poke the GC when overwriting the value of RegExpStatics.input (fix leak). 2010-04-28 18:49:36 -07:00
Andreas Gal
2173a6b94c Optimize static RegExp state (560358, r=brendan). 2010-04-28 16:35:12 -07:00
Jeff Walden
2dabf26a83 Backed out changeset 1da2bbf6cfaf, turned tree red. 2010-04-28 15:18:38 -07:00
Andreas Gal
6fe4800714 Optimize static RegExp state (560358, r=brendan). 2010-04-28 13:33:21 -07:00
Igor Bukanov
fd7877710b bug 561539 - renaming AutoSaveRestoreWealRoots into AutoPreserveWeakRoots. r=brendan 2010-04-28 14:34:02 +02:00
Mike Moening
6531928c72 Bug 549532 - Allow custom memory allocator use in spidermonkey. Part 2. r=dvander 2010-04-27 14:17:11 -07:00
Igor Bukanov
63f9c2e3d5 bug 553033 - replacing the background free list with a vector. r=jwalden 2010-04-27 15:46:24 +02:00
Andreas Gal
3579b2b1fb Merge. 2010-04-26 19:07:10 -07:00
Andreas Gal
492ea75049 Backed out changeset 35c25547a135 (bug 560358). 2010-04-26 19:06:51 -07:00
Dan Witte
fdcf03a939 Backing out due to bustage. 2010-04-26 15:16:05 -07:00
Mike Moening
b37862b231 Bug 549532 - Allow custom memory allocator use in spidermonkey. Part 2. r=dvander 2010-04-26 14:15:18 -07:00
Igor Bukanov
45a0a3043e bug 560471 - followup to fix restoration of weak roots 2010-04-24 20:35:50 +02:00
Igor Bukanov
8a04b0f372 bug 559141 - replacing GC chunk doubly linked list with js::vector. r=gal 2010-04-23 08:58:44 +02:00
Andreas Gal
d7cc7de1f9 Don't save static RegExp state across lambda replace calls (560358, r=brendan). 2010-04-21 22:39:05 -07:00
David Anderson
ab155f0037 Renamed InterpState to TracerState (bug 560988, r=luke). 2010-04-22 11:54:11 -07:00
David Anderson
e87d0a0586 Backed out changeset 4a28bd424400 (tinderbox red). 2010-04-21 16:30:06 -07:00
Mike Moenig
c846c95336 Support custom allocators (bug 549532 relanding, r=dvander). 2010-04-21 13:59:33 -07:00
Mike Moening
061831a072 Bug 559067 - Silence MSVC warnings in js/src. r=jorendorff 2010-04-16 16:00:51 -05:00
Gregor Wagner
fb425ba8b2 Bug 541140 - TM: don't return GCChunks immediately 2010-04-13 20:14:10 -07:00
Robert Sayre
ec12d7736d Backed out changeset c9faf5a2bc75 2010-04-13 18:15:20 -04:00
Mike Moenig
7cb366214a [JAEGER] Allow custom memory allocator use in spidermonkey (bug 549532, r=dvander). 2010-04-12 18:51:25 -07:00
Robert Sayre
0bc0ee1ad3 Merge mozilla-central to tracemonkey. 2010-04-12 09:45:24 -04:00
Dave Herman
ed6c552bb7 Bug 558437 - rename JSCompiler to js::Parser (r=brendan). 2010-04-10 21:15:35 -07:00
Andreas Gal
f39c969eaa Remove gcIteratorTable (557914, r=brendan). 2010-04-10 16:08:14 -07:00
Luke Wagner
98a7dc9ea6 Bug 540706 - use contiguous buffer for stack frames and slots (r=waldo) 2010-03-03 17:52:26 -08:00
Robert Sayre
bcf510f2ff Backed out changeset 60c4693a80ef 2010-05-11 16:37:18 -04:00
Igor Bukanov
e5c32894ce bug 563345 - using js::HashMap for JSRuntime::threads. r=lw 2010-05-11 09:49:28 +02:00
Ben Turner
50d613eab8 Bug 558675. 2010-04-11 15:05:07 -07:00
Jeff Walden
9fbb700478 Make the code prettier. r=style-police
--HG--
extra : rebase_source : 3bd513d15e315dcabf4d69e95e3ded5764a50363
2010-04-05 10:43:49 -07:00
Jason Orendorff
d354a0998c No bug: fix visibility warnings in GCC, no_r=me 2010-04-01 11:01:14 -05:00
Jason Orendorff
33d9cdc537 Bug 556315 part 1 - Remove GCReachableFrame. r=gal.
--HG--
extra : rebase_source : 1db26956cf3f73f1213ab222f4c3ee12637265c5
2010-03-31 17:17:20 -05:00
Jeff Walden
570eb3ecf8 Bug 538690 - js::AutoValueVector for auto-managed rooting and storage of an indefinite number of jsvals. r=igor 2010-03-01 14:46:15 -08:00
Nicholas Nethercote
07c2f920b4 Bug 555881 - TM: remove dead fields from TraceMonitor. r=waldo. 2010-03-30 18:06:38 -07:00
Jeff Walden
ed2243cc54 Remove all remnants of JSTempValueRooter. WIN! 2010-03-30 11:14:47 -07:00
Brendan Eich
34b1a91d97 Fix arguments objects to share a runtime-wide empty scope, instead of each getting a differently shaped own scope at birth (554626, r=igor). 2010-03-30 00:44:28 -07:00
Jeff Walden
560212f1a8 Readd all jsobj.cpp and related changes from bug 548702. 2010-03-28 20:32:20 -07:00
Jeff Walden
0973dfd6ab Merge. 2010-03-26 21:53:40 -07:00
Jeff Walden
95422c65a3 Backed out changeset e7065853ef79; I'll be repushing this incrementally, attempting to find the precise place where things go bad, in the near future. Happy days are here again! :-\ 2010-03-26 18:01:54 -07:00
Jason Orendorff
d5f9ef6c2a Bug 500431 part 3 - Rename JSPropertyCache to js::PropertyCache and other renamings. r=brendan. 2010-03-24 21:20:44 -05:00
Jason Orendorff
25153c3c13 Bug 500431 part 1 - Move property cache code to jspropertycache{.h,.cpp,inlines.h}. r=brendan.
--HG--
extra : rebase_source : f7a7bb63bc3cded9452807ecdd0b5b8e8f5b3ff6
2010-03-24 16:16:01 -05:00
Jim Blandy
87636f5bd9 Bug 552500: Don't bother to dynamically detect stack growth direction. r=waldo 2010-03-24 14:40:11 -07:00
Jason Orendorff
60d5805e46 Bug 509857 - Get rid of DTOA_LOCK. r=jwalden.
--HG--
extra : rebase_source : bec4d9441aa2af8488a04aa8604a65b7387cda6d
2010-03-22 18:21:10 -05:00
Brendan Eich
f819b36cf4 Use direct object shape instead of identity as key for deep property cache hits (497789, r=jorendorff). 2010-03-22 11:11:44 -07:00
Andreas Gal
c841a2ef46 Re-seed Math.random() for each window/frame/context (475585, r=waldo,dolske). 2010-03-18 08:27:26 -07:00
Igor Bukanov
90d5fa7237 bug 519476 - replacing JSSTRING_DEFLATED with scanning of the deflated cache. r=jwalden,dmandelin 2010-03-16 21:28:33 +03:00
Luke Wagner
116a193009 Bug 552248 - fix crash when JS_EvaluateInStackFrame is called for frame in saved callstack (r=Waldo) 2010-03-15 19:24:08 -07:00
Vladimir Vukicevic
77502e8e24 Backed out changeset 0b28c109c213; r=waldo,dmandelin 2010-03-15 16:03:57 -07:00
Igor Bukanov
6d3a27abc3 bug 519476 - replacing JSSTRING_DEFLATED with scanning of the deflated cache. r=jwalden,dmandelin 2010-03-13 10:01:09 +03:00
David Anderson
564824e65a Backed out changeset 04023ea0fb08. 2010-03-11 12:19:36 -08:00
Mike Moenig
2b408683cd Allow custom allocator use in SpiderMonkey (bug 549532, r=dvander). 2010-03-10 21:02:18 -08:00
Luke Wagner
a1a73dd94d Bug 551276 - a more type-safe way to zero memory (r=Waldo)
--HG--
extra : rebase_source : fc5564c34cde6490a1d3b48a16a451f7e50c052a
2010-03-10 15:34:12 -08:00
Jeff Walden
f0d10aeadd Fix up some class names in comments, r=sparky 2010-03-09 15:23:53 -08:00
Jeff Walden
106fbd8085 Bug 548702 - Temporary value-rooting scheme should be C++- and RAII-based, not macro-based. r=igor
--HG--
extra : rebase_source : c7bb34662dbd70df49d40880227139537c60356e
2010-01-11 11:52:21 -06:00
Mike Moening
0373a2437d bug 549010 - fixing and silencing MSVC warnings. r=brendan,igor 2010-03-04 20:44:09 -08:00
Igor Bukanov
eef84ebc59 bug 545529 - followup to remove the cache stats output in the normal build 2010-02-19 23:58:31 +03:00
Jason Orendorff
4d96795a35 Fix typo in patch for bug 545529 to fix non-JS_THREADSAFE DEBUG builds. r=bz on IRC. 2010-02-19 12:25:37 -06:00
Igor Bukanov
debaa592f7 bug 545529 - caching Class.prototype lookups. r=brendan 2010-02-19 20:44:23 +03:00
Luke Wagner
f8096c6b67 Try 784ceadd60e5 again with more #pragma optimize("", off) 2010-02-06 10:14:05 -08:00
Luke Wagner
fda9474440 Backout 784ceadd60e5 until PGO stops crashing 2010-02-08 10:28:07 -08:00
Luke Wagner
22b7692a6a Bug 515812 - Double hashing template (r=jorendorff) 2010-02-06 10:14:05 -08:00
David Mandelin
61112f8395 No bug: fix visibility warnings in GCC, no_r=me 2010-02-04 11:29:53 -08:00
Luke Wagner
7714144859 Bug 535656 - remove JSStackFrame::dormantNext and varobj (r=waldo) 2010-01-29 18:25:16 -08:00
Luke Wagner
89799b298a Bug 541456 - change ConvertSupportsTojsvals not to use js_AllocStack (r=jst) 2010-01-25 08:48:07 -08:00
Igor Bukanov
836b8a84eb bug 540805 - using reference counting only for empty scopes. r=jorendorff 2010-01-27 09:50:17 +03:00
Igor Bukanov
450cf95e35 bug 538275 - ClaimTitle cleanup. r=brendan, jorendorff 2010-01-24 14:15:38 +03:00
Luke Wagner
2645ecd2da Bug 541452 - put jstracer.cpp in namespace js (r=jorendorff) 2010-01-22 14:49:18 -08:00
Luke Wagner
4f05b945eb Bug 458421 - dead stuff in spidermonkey (r=jorendorff) 2010-01-22 11:52:17 -08:00
Jason Orendorff
0f530fd289 Bug 538440 - We never jit DOM workers. r=mrbkap. 2010-01-20 14:54:34 -06:00
David Mandelin
9600769682 Bug 495331: trace JSOP_LAMBDA for non-heavyweight, non-null closures, r=jorendorff,dvander 2010-01-15 11:32:14 -08:00
Igor Bukanov
702de8885c bug 528200 - replacing GC thing flags with a mark bitmap 2010-01-14 11:27:32 +03:00
David Anderson
3996e3ac0d Make sure trace native stack is 16-byte aligned (bug 534590, r=lw). 2010-01-07 17:20:00 -08:00
Jason Orendorff
cbe2891235 Backed out changeset d4caa61e69ab. It turned the tree red. 2010-07-01 20:06:33 -05:00
Andreas Gal
5c69f9ab84 Implement remaining cross compartment wrappers (574924, r=mrbkap). 2010-07-01 15:45:08 -07:00
Igor Bukanov
a9c4fac55a bug 534590 - eliminating GCF_LOCK flag. r=brendan 2009-12-24 12:31:07 +03:00
Jason Orendorff
102ed4de5a Do not secretly write to /tmp in DEBUG builds unless your name is brendan. (Leave the basic stats code ifdef'd on for everyone though, to help avoid bitrot.) No bug, r=Waldo. 2009-12-17 11:37:25 -06:00
Igor Bukanov
da4f40e4dc bug 528486 - eliminating GCF_CHILDREN. r=brendan 2009-12-14 10:55:17 +03:00
Nicholas Nethercote
03809b83a9 Bug 528857 - nanojit: mismanagement of name lifetimes with TMFLAGS=assembly? r=graydon. 2009-12-07 21:06:41 -08:00
David Anderson
8fb72a7a12 Get rid of TreeInfo and inline its members into TreeFragment (bug 525371, r=gal,lw) 2009-12-04 19:59:55 -08:00
David Anderson
b7f7a14f13 Backed out changeset 0082849624a5, potential orange. 2009-12-01 16:32:45 -08:00
David Anderson
c80f627585 Remove TreeInfo (bug 525371, r=lw). 2009-12-01 13:32:02 -08:00
Robert Sayre
4ea539c658 Relanding: Bye-bye middle-deletes and their O(n^2) worst case complexity; hello dictionary-mode scopes (473228, r=jorendorff). Backed out changeset ee7bfc1923ad 2009-12-01 15:49:15 -05:00
Robert Sayre
8be5b171b9 Backed out changeset c03ebf340688. Bye-bye middle-deletes and their O(n^2) worst case complexity; hello dictionary-mode scopes (473228, r=jorendorff). 2009-12-01 09:56:16 -05:00
Brendan Eich
c731045c51 Bye-bye middle-deletes and their O(n^2) worst case complexity; hello dictionary-mode scopes (473228, r=jorendorff). 2009-11-20 16:14:42 -08:00
Jason Orendorff
3f11018c72 Bug 519719 - TM: crash [@ JS_GetFrameThis] - SynthesizeFrame passes partly-uninitialized JSStackFrame to callHook. r=mrbkap. 2009-11-13 11:04:23 -06:00
Jim Blandy
76386acacd Bug 514585: Machinery for reporting ES5 strict mode errors. r=igor
2009-11-19: checkReportFlags adjusted to use js_GetTopStackFrame, to
satisfy static analysis checks. No effect on Sunspider.

At compile-time, we must consult the current JSTreeContext to decide
whether to issue an strict mode error; at run-time, we need to
check the strictness of the currently executing script.  Both cases
also check the context options.  The design is supposed to make it
easy to follow the principle that conditions treated as errors in
strict mode are a subset of those warned about by JSOPTION_STRICT.

This patch removes report flag handling from js_ExpandErrorArguments,
which is used for both compile-time and run-time errors.  At run-time,
the new checkReportFlags handles the checks.  At compile-time, we need
different checks depending on the situation, so the checks are done in
js_ReportStrictModeError, js_ReportCompileErrorNumber, and the new
ReportCompileErrorNumberVA.
2009-11-19 09:23:20 -08:00
Jim Blandy
534bfe84e0 Back out ad37dab7ea17: code to check the current frame's script's strictness flag fails the static checks. Using js_GetTopStackFrame introduces a perf regression. 2009-11-18 14:36:55 -08:00
Jim Blandy
bd0b14cc7e Bug 514585: Machinery for reporting ES5 strict mode errors. r=igor
At compile-time, we must consult the current JSTreeContext to decide
whether to issue an strict mode error; at run-time, we need to
check the strictness of the currently executing script.  Both cases
also check the context options.  The design is supposed to make it
easy to follow the principle that conditions treated as errors in
strict mode are a subset of those warned about by JSOPTION_STRICT.

This patch removes report flag handling from js_ExpandErrorArguments,
which is used for both compile-time and run-time errors.  At run-time,
the new checkReportFlags handles the checks.  At compile-time, we need
different checks depending on the situation, so the checks are done in
js_ReportStrictModeError, js_ReportCompileErrorNumber, and the new
ReportCompileErrorNumberVA.
2009-11-18 13:33:53 -08:00
Luke Wagner
5edaaf4c39 Bug 517174 - trace js_Invoke calls from natives (r=dvander) 2009-11-12 18:34:24 -08:00
Andreas Gal
ac3a0faa92 Remove reserve doubles and objects lists and instead waive the GC quota to avoid failing in LeaveTree (508140, r=dvander). 2009-11-12 16:01:56 -08:00
Igor Bukanov
86e549290f bug 522867 - eliminating the local root check on the fast path of the GC allocator. r=brendan,gal 2009-11-12 12:53:25 +01:00
David Anderson
db7ed2cb48 Reorganized the fragment class hierarchy (bug 524620, r=gal). 2009-11-05 15:04:54 -08:00
Luke Wagner
7e9e13723a Bug 525120 - move native stack off the C stack (fixes native global frame alignment) (r=dvander)
--HG--
extra : rebase_source : 88fd7104fd77507c7c6ffd3dd0464cc6954f90c0
2009-10-28 16:44:44 -07:00
Igor Bukanov
0d38a472cc bug 524346 - using jsval, not jsdouble *, for nan and +-oo. r=brendan 2009-10-28 14:57:31 +03:00
Andreas Gal
b75eef6411 Add an internal API to query the current JSThread (524841, r=brendan). 2009-10-27 17:55:34 -07:00
Jason Orendorff
d2943dea25 Bug 524743 - Shape regeneration still does not touch most empty scopes. r=brendan.
--HG--
extra : rebase_source : 13a7f72bef38f2bfb8615a907c0cb47e31f55e1d
2009-10-27 16:00:26 -05:00
Igor Bukanov
8785797ba7 Backed out changeset 14c76164f4c2 - patch for bug 524346 caused test fails 2009-10-27 19:21:47 +03:00
Igor Bukanov
ed4f6edf7f bug 524346 - using jsval, not jsdouble *, for nan and +-oo. r=brendan 2009-10-27 13:26:57 +03:00
Luke Wagner
f723becfb6 Remove execute permissions on source files 2009-10-22 10:41:19 -07:00
Jason Orendorff
326aa1d148 Bug 522590 - FF 3.7 crash on startup with chromebug. r=brendan. 2009-10-21 15:27:35 -05:00
Andreas Gal
ebb3f8e3e1 Replace JSPtrTable with js::Vector (523463, r=luke). 2009-10-20 15:08:28 -07:00
Brendan Eich
9f9a05b0c3 Don't build a stack frame to execute empty scripts (516827, r=igor). 2009-10-18 17:41:24 -07:00
Igor Bukanov
d615c5e729 bug 521390 - avoid checking for malloc memory pressure when allocating GC things from free lists. r=brendan 2009-10-18 19:40:19 +04:00
Igor Bukanov
af1a5810f7 bug 505315 - constructing GC free lists during finalization. r=brendan 2009-10-16 10:10:54 +04:00
Igor Bukanov
9212853abd Backed out changeset 487b81c753c0 - landing of bug 505315 caused talos crashes across platforms. 2009-10-15 13:53:40 +04:00
Igor Bukanov
0d37930589 bug 505315 - constructing GC free lists during finalization. r=brendan 2009-10-15 11:41:08 +04:00
Igor Bukanov
fe9d4ed1fa bug 454435 - optimizing allocation of doubles. r=brendan 2009-10-08 20:08:00 +04:00
Igor Bukanov
9acf40e6f6 bug 517199 - typed GC free lists. r=brendan 2009-10-02 18:34:22 +04:00
Igor Bukanov
b9aa3a1f41 Backed out changeset 31682547b6f1 - bug 517199 has shown persistent failure on Windows tinderboxes. 2009-10-01 15:17:31 +04:00
Igor Bukanov
d74cb55d3b relanding of bug 517199 (Backed out changeset dcbf332bfaba) - typed GC free lsists - implementation. r=brendan 2009-10-01 12:57:15 +04:00
Igor Bukanov
8f1d988c8e bug 517199 - Backed out changeset 47619e6bad9a to investigate windows failures 2009-10-01 09:54:19 +04:00
Igor Bukanov
0267c11f0d bug 517199 - typed GC free lsists - implementation. r=brendan 2009-10-01 08:13:38 +04:00
David Anderson
5aeb5cef7e Internalize and memoize FrameInfo pointers (bug 501398, r=brendan). 2009-09-30 13:00:16 -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
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
L. David Baron
7e046dd800 Add assertions that fire when a JSAutoRequest, JSAutoSuspendRequest, JSAutoLocalRootScope, JSAutoTempValueRooter, JSAutoTempIdRooter, JSAutoIdArray, JSAutoEnumStateRooter, or JSAutoResolveFlags is used as a temporary. (Bug 518633) r=igor 2009-09-27 23:17:47 -07:00
Luke Wagner
a79d78e239 Fix ridiculous manual merge error. (r=graydon) 2009-09-24 12:40:13 -07: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
ccc6ad4904 Bug 517083 - TM: introduce a temp allocator for allocations during recording and compilation, r=gal. 2009-09-22 12:36:20 -07:00
Jeff Walden
553915decf Bug 307791 - Implement ES5's Object.keys(O). r=jorendorff 2009-09-08 15:59:14 -07:00
Igor Bukanov
8da9fad53a bug 512046 - avoid maintaing a per-runtime iterator list. r=brendan 2009-09-19 13:40:43 +04:00
Jason Orendorff
b74384b5c8 Backed out changeset 3f508cfdfa36 (bug 500431) due to tinderbox orangeness 2009-09-18 08:55:01 -05:00
Jason Orendorff
b040e5c724 Bug 500431 - Encapsulate the property cache using C++ best practices - Part 2, refactoring. r=Waldo. 2009-09-17 18:24:38 -05:00
Andreas Gal
55697d8ebf Merge. 2009-09-17 15:44:30 -07:00
Andreas Gal
38b0ee0297 Backed out changeset 5f449dffdff5 (regressed tp4 private bytes, and we are not sure what the hell that means). 2009-09-17 15:40:37 -07:00
Andreas Gal
4b2f3150ab Use one single GC heap chunk, avoiding frequent mmap and malloc calls (508707, r=igor,brendan). 2009-09-15 14:29:01 -07:00
Graydon Hoare
d0efa663da Bug 503424 - Additional followup to fix more profound build-breakage, r=me. 2009-09-15 17:07:33 -07:00
Graydon Hoare
70f3343672 Bug 503424 - Followup to fix windows build breakage, r=gal.
--HG--
extra : rebase_source : 338e0b9c4b5c52fbec05074086a80076cf9f8299
2009-09-15 16:31:07 -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
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
Luke Wagner
d72c89d060 Backed out changeset b866396faae4 2009-09-10 16:44:01 -07:00
Luke Wagner
e9357856b4 Bug 506410 - bring template lovin' to hash tables (r=jorendorff) 2009-09-10 16:16:29 -07:00
Andreas Gal
bd58a78c21 Set nativeVp immediately before the native call (514999, r=mrbkap). 2009-09-09 17:38:07 -07:00
Brendan Eich
809ce29270 Cope with null tvr string refs (515000 followup, r=self). 2009-09-07 21:08:31 -07:00
Brendan Eich
7a412f40b3 JSTempValueRooter JSTVU_SINGLE over-constrains GC-thing against static allocation (515000, r=gal). 2009-09-07 00:35:27 -07:00
Gregor Wagner
2e1104b40f Cache result of Number2String (bug 513530, r=brendan). 2009-09-04 16:28:30 -07:00
Luke Wagner
5c14309cd1 Bug 511750 - factor template utilities into js::tl (r=brendan)
--HG--
extra : rebase_source : a5a396811268e71af8e56c66dab491f3081bc20a
2009-09-01 18:46:19 -07:00
Andreas Gal
030a8114b2 Backed out changeset 9b6b17a275ec (bug 506125). 2009-08-25 14:42:42 -07:00
Andreas Gal
f808b9ca98 Memory-pressure based GC scheduler (506125, r=igor,jwalden). 2009-08-24 18:24:52 -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
Jason Orendorff
5418886640 Bug 511418 - static-analysis error in jsobj.cpp:4257: cannot access JS_REQUIRES_STACK variable JSContext::fp and another trivial error in jstracer.cpp. r=gal.
--HG--
extra : rebase_source : 9ee93b34fbf656437932a4f3c8b373a11911cffd
2009-08-20 14:13:21 -05:00
Andreas Gal
9a78cb5d5f Use thread-local RNG for Math.random() (511328, r=shaver,waldo). 2009-08-19 15:23:54 -07:00
Andreas Gal
c438241025 Backout bug 506125. 2009-08-18 17:30:05 -07:00
Andreas Gal
57285268f7 Schedule GC based on process memory pressure (506125, r=igor,waldo). 2009-08-18 16:38:02 -07:00
Andreas Gal
ebc6f01967 Add an API to notify the JS engine that we are about to destroy the runtime (511252, r=brendan). 2009-08-18 16:31:20 -07:00
Jason Orendorff
b3aba1ee4c Delete unused JSBUILTIN_ constants. No bug. r=gal. 2009-08-17 17:36:36 -05: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
Jason Orendorff
8384b1e239 Bug 509098 - Remove JS_HAS_LVALUE_RETURN support. r=brendan. 2009-08-13 16:18:33 -05:00
Andreas Gal
fee752ae24 Cleaning code cache flush handling (510136, r=jorendorff). 2009-08-13 08:35:35 -07:00
Graydon Hoare
b8154cc364 Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal. 2009-07-15 16:50:01 -07:00
Andreas Gal
9c938dd547 Backout bug 506125 due to talos failures. 2009-08-04 18:42:53 -07:00
Andreas Gal
06ad033ff2 Memory-pressure based GC scheduler (506125, r=igor). 2009-08-04 14:58:21 -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
Graydon Hoare
2e92fcbbe3 Backed out changeset d0be9284ea67 2009-07-30 14:28:26 -07:00
Graydon Hoare
caf3859643 Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal. 2009-07-15 16:50:01 -07:00
Andreas Gal
e7f2714ea1 When finalizing, deallocate memory in a separate thread (505612, r=bent,brendan,waldo). 2009-07-27 21:10:12 -07:00
Jason Orendorff
a22e8a6032 Bug 505932 - Shape regeneration does not touch most empty scopes. r=brendan. 2009-07-27 16:29:02 -05:00
Igor Bukanov
bfbac69d3f bug 506243 - eliminate GC thread-local lists pools. r=brendan 2009-07-26 18:24:39 +02:00
Brendan Eich
b4a10de944 Bug 488731 - Avoid shape regeneration and property cache purge during the GC (r=mrbkap). 2009-07-24 06:55:28 -07:00
Robert Sayre
6968ea2205 Merge backout. 2009-07-24 00:02:02 -04:00
Robert Sayre
9e0ade7287 Backed out changeset b3d459d23452 2009-07-24 00:01:37 -04:00
Robert Sayre
3722b48ae2 Merge backout. 2009-07-23 22:08:05 -04:00
Robert Sayre
d71c6818a0 Backed out changeset 047b9102dddb 2009-07-23 22:06:31 -04:00
Brendan Eich
cf4a2c7921 Avoid shape regeneration and property cache purging from the GC unless the shape generator overflows (488731, r=jorendorff). 2009-07-23 17:59:49 -07:00
Andreas Gal
eb711234db Use a background thread to free() memory while sweeping (505612, r=brendan,bent). 2009-07-23 15:12:34 -07:00
Andreas Gal
241532b53a Inline malloc accounting functions (504219, r=jwalden). 2009-07-16 18:36:19 -07:00
Andreas Gal
88cf1d87c6 Avoid integer math for GC trigger factor calculation in allocation path, take 2 (503463, r=dmandelin). 2009-07-14 17:03:20 -07:00
Peter Van der Beken
cf914cb140 Backed out changeset 2073d5aae8b6 (Avoid integer math for GC trigger factor calculation in allocation path (bug 503463)). 2009-07-14 11:49:15 +02:00
Andreas Gal
0c6942b658 Avoid integer math for GC trigger factor calculation in allocation path (503463, r=dmandelin). 2009-07-13 13:24:25 -07:00
Brendan Eich
f60779aef5 Bug 503343 - Change JSScope macros to methods. r=jorendorff 2009-07-09 15:27:21 -05:00
Robert Sayre
878a89a073 Merge mozilla-central to tracemonkey. 2009-07-06 12:20:54 -04:00
Luke Wagner
145fbf91c2 Bug 200505 - Optimization of jsref array_join_sub() function. r=waldo 2009-06-30 20:19:42 -04:00
Robert Sayre
3f97d5e6f5 Backed out changeset b2256abf53c0 2009-06-30 12:14:09 -07:00
Luke Wagner
a6311cf8b5 Bug 200505 - Optimization of jsref array_join_sub() function. r=waldo 2009-06-30 11:29:43 -07:00
Jason Orendorff
52fe5a97ba Bug 497618 - Change JSString macros to methods. r=Waldo. 2009-06-10 20:29:44 -05:00
Andreas Gal
ec254bec6f Support tracing instanceof operator (498351, r=jorendorff). 2009-06-15 16:44:30 +01:00
Johnny Stenback
a511964116 Fixing bug 442399. Remove LiveConnect from the tree. r=joshmoz@gmail.com, bclary@bclary.com, sr=brendan@mozilla.org 2009-06-30 15:55:16 -07:00
Brendan Eich
0416e1e679 Bug 492355 - Suspected Txul regression from JS engine changes (r=igor). 2009-05-13 17:11:23 -07:00
Graydon Hoare
2a50d488f5 Bug 489615 - TM: Store recording attempts in a long-lived hashtable rather than fragments, r=brendan. 2009-05-07 15:49:44 -07:00
jorendorff
93c6d226d3 Record all calls to native functions (487134, r=gal, brendan). 2009-05-05 14:26:06 -07:00
Igor Bukanov
35116060a2 bug 489501 - consolidating
js_SetProto must mutate the prototype chain. r=brendan
2009-05-01 13:48:27 -07:00
Graydon Hoare
bb4177dccd Bug 490044 - TM: Add deep-bailing write barrier to global shape change code, r=brendan. 2009-04-24 17:47:32 -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
Jason Orendorff
4ea515fa8b Bug 488874 - Change tm.onTrace to tm.tracecx. r=brendan.
--HG--
extra : rebase_source : bf683bee5e518cf5bfea8113c17685b8301d72c9
2009-04-22 15:07:55 -05:00
jorendorff
e1b8077e65 Leaving outermost request should js_LeaveTrace (480301, r=brendan). 2009-04-20 18:22:00 -07:00
Igor Bukanov
4ad2e764fa bug 488414 - js_GenerateShape just schedules, not run, the GC. r=brendan,gal 2009-04-20 12:10:29 +02:00
Igor Bukanov
fd49b19773 Backed out changeset f4662701526b (bug 488414) to fix !JS_THREADSAFE compilation errors 2009-04-20 11:59:36 +02:00
Igor Bukanov
56547f8087 bug 488414 - js_GenerateShape just schedules, not run, the GC. r=brendan,gal 2009-04-20 10:17:28 +02:00
Igor Bukanov
907592f765 bug 477627 - avoiding deadlocks in ClaimTitle. r=brendan 2009-04-16 00:01:24 +02: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
Blake Kaplan
1c5e6afeac Bug 487684 - Store the last trace PC to pass into the decompiler. r=igor 2009-04-10 14:06:28 -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
Brendan Eich
3f4a58e4f0 Bug 487271 - Crash [@ js_Invoke ], and missing google-maps background, at padmapper.com (r=mrbkap). 2009-04-08 13:14:02 -07: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
962b187fe5 upvar2, aka the big one take 2 (452598, r=mrbkap). 2009-04-05 21:17:22 -07: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
Jim Blandy
02252a653d Bug 482743: Fix up bytecode execution tracing. Allow tracing to file. r=igor
js_TraceOpcode: Remember the last bytecode we traced explicitly,
instead of subtracting 'len' from regs.pc, which isn't reliable.
Decline to trace values in script prologues (between 'code' and
'main').  Decline to walk off the bottom of the stack when the 'last
bytecode' is misleading.  Flush the stream after each bytecode.

Use the TRACE_OPCODE macro in both threaded and non-threaded
interpreters.  Take care to make threaded and non-threaded
interpreters produce the same traces.

In the shell's 'tracing' function, use JS_ValueToBoolean to recognize
all sorts of booleans, and treat a string as the name of a file to
write the trace to.
2009-04-01 08:50:57 -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
Igor Bukanov
a8094a7903 bug 437325 - JSThread is no longer shared between JSRuntime instances. r=brendan 2009-03-24 13:07:35 +01: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
4017bf1be3 str_match should use js_GetCurrentBytecodePC (484308, r=mrbkap). 2009-03-20 17:07:30 -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