Commit Graph

35203 Commits

Author SHA1 Message Date
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
Ehsan Akhgari
40348234c6 Bug 527820 - Checking all prefs except "Site Preferences" shows confusing UI; r=dao ui-r=beltzner a=blocking-firefox3.6+
--HG--
extra : rebase_source : 661c6a6c0d4a74e478cf8b476e65723a1654c54f
2009-11-17 14:49:59 -05: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
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
Bob Clary
6636e9737a Bug 528654 - Intermittent timeout waiting for onload to fire in js1_8_1/trace/trace-test.js 2009-11-20 00:12:05 -08:00
Bob Clary
0d0726327c Bug 528464 - Intermittent failures - js1_5/extensions/regress-342960.js 2009-11-20 00:11:52 -08:00
Bob Clary
0fdee9994a Bug 528284 - js1_5/extensions/regress-371636.js - random failure for opt/debug on mozilla-central 2009-11-20 00:11:40 -08:00
Bob Clary
fb2d63c0fe Bug 522760 - js/src/tests/ecma_5 tests should not run as JavaScript 1.5, r=brendan 2009-11-20 00:11:27 -08:00
Bob Clary
022dee3627 Bug 529754 - set javascript.options.jit.chrome true in browser tests. 2009-11-20 00:11:14 -08:00
Jim Blandy
e412a5c444 Bug 514575: Forbid rebinding 'eval' or 'arguments' in ES5 strict mode code. r=mrbkap 2009-11-19 14:08:02 -08:00
Jim Blandy
740a8791c2 Bug 514562: Forbid assignments to 'eval' and 'arguments' in strict mode code. r=mrbkap
Drafts of the ES5 spec required a type error to be raised when an
assignment to "arguments" is evaluated in function code. In
ECMA/TC39/2009/050, this condition has been changed to a syntax error
in all code. By the rules of chapter 16, implementations must report
it early.
2009-11-19 14:08:02 -08:00
Jim Blandy
18f28c0cac Bug 514580: Forbid duplicate formal parameter names in strict mode code. r=mrbkap
Note: this patch changes the JSOPTION_STRICT warning from a TypeError
into a SyntaxError, if JSOPTION_WERROR is also set.
2009-11-19 14:08:02 -08:00
Nicholas Nethercote
4c73546ad1 Update nanojit-import-rev stamp. 2009-11-20 08:57:52 +11:00
Edwin Smith
4a6316d03b Suppress unused parameter warning in PPC backend (r=me)
--HG--
extra : convert_revision : 4ac63c016a95f1c58082824cf6813692f51ae917
2009-11-19 10:09:38 -05:00
Nicholas Nethercote
4ca10e2ea0 Bug 515311 - nanojit: kill reservations in the PPC backend. r=rreitmai.
--HG--
extra : convert_revision : e0a0d3915764c663ccf1f0b6bedc14c7303ad239
2009-11-19 10:41:16 +11:00
Edwin Smith
efee9aec4c Fix Sparc bustage from bug 528419 (r=me)
--HG--
extra : convert_revision : 018f529d80309686b99d109eb132f520cf72a2fc
2009-11-18 16:07:09 -05:00
Edwin Smith
c75cfaf023 Fix PPC bustage (bug 513863, r=me)
--HG--
extra : convert_revision : 606f3e6e99b02907d3c983dd37aa7e011a7fa43e
2009-11-18 13:42:08 -05:00
Nicholas Nethercote
f0737b9579 ARM Bustage fix for bug 513863. r=me.
--HG--
extra : convert_revision : ee701ef7d0e4ca71ce73ac77a65fe8549429dce1
2009-11-18 12:33:34 +11:00
Nicholas Nethercote
e26daf15b9 Bug 513863 - nanojit: refactor registerAlloc(). r=rreitmai.
--HG--
extra : convert_revision : 6b7cffb8984f821980d38d4c9ccd31f8bdd3e363
2009-11-18 12:27:57 +11:00
Nicholas Nethercote
391f339dc4 Bustage fix: avoid compiler warning (which is treated as an error by tinderbox). r=me.
--HG--
extra : convert_revision : 225c22dfb86b51c2e28e0328d98032d52e10d58d
2009-11-18 11:35:39 +11:00
Nicholas Nethercote
5fd3964fe4 Bug 528419 - nanojit: overhaul i386 comparison handling. r=edwsmith.
--HG--
extra : convert_revision : f05d2e60125fd7ffc5ab67bb0541012638d4d1cb
2009-11-18 11:15:20 +11:00
Edwin Smith
9bd0901698 One more try to make osx64 and linux64 compilers happy with printf
--HG--
extra : convert_revision : 440f14010965f1f70afd90b30007988617f064a0
2009-11-17 15:09:27 -05:00
Edwin Smith
b39acdae73 Fix several underrunProtect bugs in X64 backend (bug 529219 r=edwsmith+)
I'm pushing this on behalf of nnethercote since tamarin had one additional
regression failure that this patch fixes.  Comments from the bug:

Bug 520712 introduced some underrunProtect() problems in the X64 backend.  A
follow-up patch fixed one of them, but there are several remaining.  This patch
fixes all of them, AFAICT, and commons out some code in the process hopefully
making things less error-prone.  (It also fixes a printf-style compile
warning.)

I tested this by reducing the size of chunks allocated by codeAlloc to only 128
bytes.  After doing that, without this patch, Tracemonkey was fairly crashy and
Tamarin was totally crashy;  with the patch both were fine, albeit slower than
usual.  (I tried 64 bytes as well but got assertions in the code allocator,
that seems to be Just Too Small.)

--HG--
extra : convert_revision : 7972be6204883c0ba472fe8caaa08f0b08660e72
2009-11-17 14:34:43 -05:00
Jim Blandy
14f017ccd9 Bug 514572: Forbid deletion of variables, arguments and functions in ES5 strict mode. r=jorendorff 2009-11-19 12:35:55 -08:00
Jim Blandy
4ebb8ece60 Bug 514567: Detect duplicate property names. r=jorendorff 2009-11-19 12:35:55 -08:00
Jim Blandy
60339bbd5a Bug 514567: Define JSAutoAtomList, a variant of JSAutoAtomList with a destructor. r=jorendorff 2009-11-19 12:35:55 -08:00
Jim Blandy
e1243b3edc Bug 514560: Forbid assignments to undeclared variables in strict mode code. r=jorendorff
--HG--
rename : js/src/tests/ecma_5/strict/shell.js => js/src/tests/js1_8_1/strict/shell.js
2009-11-19 12:35:55 -08:00
Brendan Eich
bc127fbdb6 Beware CALLEE_UPVAR_SLOT when adjusting upvar cookie to skip over args to reach vars in the upar's home frame -- the callee is a special case with a magic slot that must not be changed (528082, r=mrbkap). 2009-11-19 12:14:52 -08:00
Luke Wagner
1d78e70efe Bug 526348 - pick higher pattern-length threshold for using BMH (r=waldo) 2009-11-19 10:34:28 -08:00
Jim Blandy
dccc422655 Bug 514576: Forbid 'with' statements in strict mode code. r=mrbkap 2009-11-19 09:49:00 -08:00
Jim Blandy
65ebe01f93 Bug 514559: Forbid octal literals or escape sequences in strict mode. r=mrbkap 2009-11-19 09:49:00 -08:00
Jim Blandy
a1ea615b02 Bug 521868: Make code passed to a direct call to eval inherit the caller's strictness. r=jorendorff 2009-11-19 09:48:59 -08: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