Commit Graph

7240 Commits

Author SHA1 Message Date
Robert Sayre
e106f3992a Merge. 2009-11-19 01:23:03 +01:00
Robert Sayre
33427c24cd Merge mozilla-central to tracemonkey. 2009-11-19 01:21:34 +01:00
Brendan Eich
d8d7d789d5 Fix uninitialized var bug (529679, r=jorendorff). 2009-11-18 15:56:34 -08:00
Brendan Eich
b2fde2a964 Fix method barrier not to brand, period (branding withou reshaping is worse, branding correctly is unnecessary; 524826, r=jorendorff). 2009-11-18 13:47:06 -08:00
Jason Orendorff
cd32782f94 Bug 505523 - Property cache can skip JSClass::resolve or JSClass::addProperty hooks. r=graydon, r=brendan.
--HG--
extra : rebase_source : a77b0e81203010aabe07b92b639762dce83200c0
2009-11-18 14:29:58 -06: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
Brendan Eich
dd2281d2c9 Fix method barrier not to brand, period (branding without reshaping is worse, branding correctly is unnecessary; 524826, r=jorendorff). 2009-11-18 13:41:40 -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
Jim Blandy
34a27f0c88 Bug 514585: Recognize "use strict" directives. r=igor 2009-11-18 13:33:53 -08:00
Jim Blandy
ae0ff5874f Bug 514585: Remove macro wrappers for js_NewPrinter and JS_InitArenaPool. r=igor
These macros were intended to help avoid passing unused parameters
when JS_ARENAMETER is not defined, but they're not worth the trouble.
The unused parameter doesn't elicit warnings, and the performance
impact of passing the unneeded argument is negligible.

This also removes support for JS_ARENA_CONST_ALIGN_MASK, which is not
used.
2009-11-18 13:33:53 -08:00
David Anderson
88369259e6 Fixed string flag bugs on VC++ x64 (bug 512866, r=waldo). 2009-11-18 13:24:24 -05:00
David Anderson
20ee309b48 Fixed accidentally trying to trace compile a recursive generator (bug 529130, r=gal). 2009-11-18 12:41:51 -05:00
Blake Kaplan
e4ee1ce1bf Bug 528126 - Ensure the GC can see the new object. r=brendan 2009-11-18 15:54:27 +01:00
Blake Kaplan
f3b7e0182c Bug 520572 - Test watch() on an outer object. r=brendan/bc
--HG--
extra : rebase_source : e675a97028a914de51f39962b6865e2bf59f80fd
2009-11-18 12:58:28 +01:00
Luke Wagner
2c29b03b23 Bug 526173 - 3.5x regression in indexOf performance (r=waldo) 2009-11-17 22:40:50 -08:00
Jeff Walden
05bcc1bbb2 Backed out changeset 975b36c50d33; bug 478047's fix was misguided and contra ES5, and moving to ES5 semantics at this late date in the release cycle seems unwise. We'll move from old and busted directly to ES5 shortly after 3.6 so as to provide maximum time for ironing out incompatibilities in the wild. r=gal 2009-11-16 17:21:48 -08:00
Andreas Gal
f391d8a4f0 Don't attempt to GC when caller has waived the GC heap quote (528507, r=dvander). 2009-11-17 14:31:06 -08:00
Blake Kaplan
02f032b9bb Bug 461170 - Mark this test as passing. 2009-11-17 11:59:35 +01:00
Nicholas Nethercote
1543355a8e Update nanojit-import-rev stamp. 2009-11-17 15:56:35 +11:00
Edwin Smith
18ad0c911d Fix assertion failure injected by X64 verbose code patch (bug 520712 r=dvander+)
When we test the size of an offset, we have to do it after underrunProtect
or else a jump can be inserted which then invalidates the instruction selection.

--HG--
extra : convert_revision : 9b249328236ffec433abb961c0737a82f437c7d4
2009-11-16 14:22:26 -05:00
Nicholas Nethercote
a8fa693ddd Bug 520712 - nanojit: print assembly code for X64 backend with TMFLAGS=assembly. r=edwsmith.
--HG--
extra : convert_revision : bc99b0483e324920fa4c55235d1f9da58eeebcaf
2009-11-16 13:14:39 +11:00
Luke Wagner
e33f55be7a Bug 529147 - fix flipped numSideExitsBefore assertion (r=dvander) 2009-11-16 17:45:50 -08:00
David Anderson
003e66b4ad Use INS_CONSTOBJ instead of INS_CONSTWORD for kshape guard (bug 528048, r=gal). 2009-11-16 18:44:58 -05:00
Jeff Walden
926066f46d Bug 520890 - obj_getOwnPropertyDescriptor nests object locks. r=jorendorff 2009-11-09 16:16:28 -08:00
Luke Wagner
e00c281f26 Bug 528870 - fix double-slurping rebase error (r=dvander) 2009-11-16 10:14:57 -08:00
Blake Kaplan
f0cd93b989 Bug 461170 - Detect when typeof is applied to an expression before constant folding so we correctly throw unbound name exceptions from the folded expression. r=brendan 2009-11-06 18:27:17 +01:00
Nicholas Nethercote
8b890f0ae6 Bug 465582: the TM-specific part. r=dvander. 2009-11-16 10:03:30 +11:00
Nicholas Nethercote
e586febe59 Update nanojit-import-rev stamp. 2009-11-16 08:18:55 +11:00
Nicholas Nethercote
97e38dea03 Bug 518242 - NJ: Remove insSkip and supporting machinery. r=graydon.
--HG--
extra : convert_revision : d0134ea858d0e34c389868a59aac7085451865b4
2009-11-13 16:18:40 +11:00
Graydon Hoare
ec80c24575 Bug 528320 - Improve warning-handling on windows, r=rreitmai.
--HG--
extra : convert_revision : c1dd9d0db4cf07210025b69e852f2ea43275a759
2009-11-12 15:07:31 -08:00
Julian Seward
6de060464c Bug 517883 - make TM fragment entry- and exit-profiling work on ARM, r=vlad.
--HG--
extra : rebase_source : 5ce347fc1855009b2e71a67ab4df69ee03e7d65b
extra : convert_revision : e133153691ce2daf3eb72bba7762191b61b7afcb
2009-11-12 14:30:36 -08:00
Nicholas Nethercote
ce6dd615de Bug 513865 - nanojit: make LirReader::read() clearer and faster. r=gal.
--HG--
extra : convert_revision : d78bd673c8652d17489559744f4a221c78811286
2009-11-13 09:26:26 +11:00
Nicholas Nethercote
3cdf300b3f Bug 527874 - nanojit: add and remove some uses of findSpecificRegForUnallocated(). r=rreitmai.
--HG--
extra : convert_revision : 8a61bb2085985eb84772ca1ad924eee5b7fe544f
2009-11-13 09:23:14 +11:00
Edwin Smith
9eada54d27 Fix NativeARM; missed one file when backing out registerAllocTmp (r=me)
--HG--
extra : convert_revision : ec94ce9d044ee358a65c259a6151ce660122f813
2009-11-12 08:39:32 -08:00
Edwin Smith
d7a89e77b5 Add LIR_jtbl instruction, and patch up lirasm to remove LIR_ji (bug 465582 r=nnethercote+, rreitmai+)
new opcode: LIR_jtbl.  jtbl takes a uint32_t index and a table of label
references (LIns**), representing a jump to one of the labels.

the index must be in range (range checking is not included in the opcode).

the table is allocated in memory at least as long lived as the LIR; this is
accomplished by doing the allocation from the same Allocator used by LirBuffer.

In the x86 backend, this is implemented with a simple jmp [R*4+ADDR] where ADDR
is the address of the table.  I added a new dataAllocator (Allocator&)
parameter to Assembler, which is used for allocating data along with code (data
& code have same lifetime).  The x86 backend allocates the final table of
addresses from this allocator and embeds the pointer to the table in code.

In other backends more than one instruction must be used due to limited range
of the constant part of the addressing mode (ppc, arm), or non-support for
full-range pc-relative indexing (x64, ppc64).

Anyone generating LIR code for use with LIR_jtbl must also generate a
LIR_regfence instruction after each label reachable by a forwards edge
from LIR_jtbl.  This is to workaround the register allocator's inability
to merge register states between 2 or more pre-existing targets.  LIR_regfence
is not required for backwards edges.

--HG--
extra : convert_revision : ee709eaaa30f720f77ab863ba4c9e6d10d69982b
2009-11-11 14:38:12 -05:00
Rick Reitmaier
90792e48c5 Silence win64 compiler gripe about unused var (r+me)
--HG--
extra : convert_revision : 6a40f9bbeae25cc7c79ce34db8226ab0ff786c57
2009-11-11 09:12:57 -08:00
Luke Wagner
12ec57f335 Bug 520636 - sideExits holds dangling pointer on failed compilation (r=dvander) 2009-11-13 15:47:08 -08:00
Luke Wagner
931c1a14c6 Quiet the hounds of JS_REQUIRES_STACK 2009-11-13 15:24:25 -08:00
Luke Wagner
5edaaf4c39 Bug 517174 - trace js_Invoke calls from natives (r=dvander) 2009-11-12 18:34:24 -08:00
Jason Orendorff
c26c16cb0c Bug 528414 - JS_IsRunning can be wrong. r=brendan.
--HG--
extra : rebase_source : 4fca5efd5f558c1b64b0e86580d2c42af7e61e34
2009-11-13 09:24:12 -06:00
Bob Clary
da3344ac86 Bug 528384 - Intermittent failure in js1_8_1/trace/regress-451673.js 2009-11-13 05:26:33 -08:00
Bob Clary
797b78af45 Bug 528284 - js1_5/extensions/regress-371636.js - random failure for debug windows. 2009-11-13 05:26:33 -08:00
Bob Clary
88b75ddfa2 Bug 524734 - js1_8_1/trace/regress-451974-01.js, regress-451974-02.js fix random failure. 2009-11-13 05:26:33 -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
Jason Orendorff
45cb4ee721 Bug 523998 - Add assertions to detect cases where objects were not touched by shape regeneration. r=dmandelin.
--HG--
extra : rebase_source : 6a71b143bdb82a81e00c082df5dc4c15198ad5d6
2009-11-12 16:50:12 -06:00
Igor Bukanov
dd905004ad bug 527803 - avoiding unnecessary js_AddRoot. r=brendan 2009-11-12 23:13:25 +01: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
Jeff Walden
e53d0c2e48 Backed out changeset 2fe1a3d6e672, enough philosophically-vexing orange that I'm unwilling to adjust all the tests without discussion (or, alternately, leave it in place until morning). 2009-11-12 00:57:18 -08:00
Jeff Walden
152d62d222 Bug 523846 - Assignments to a property that has a getter but not a setter should not throw a TypeError per ES5 (at least not until strict mode is supported). r=brendan
--HG--
extra : rebase_source : 7d47eb44d21f17bfa11aeadca2ff980336315eca
2009-11-10 18:03:41 -08:00
David Anderson
88c1b301bc Backed out changeset 193b41b37d17 2009-11-11 23:03:17 -08:00