gecko/js/src
Edwin Smith 52ea68fee4 Bug 572798 - add LIR_callv (r=nnethercote)
Adds LIR_callv for calls to helper functions that return void.

Added a ValidateWriter check that LIR_callv to be paired with ARGTYPE_V,
plus checks for the other obvious pairings, plus a check that callv must
not call a _pure=1 function.

getCallOpcode() returns LIR_callv for ARGTYPE_V, as expected.  This means that
some calls will return LTy_V from LIns::retType(), as expected, but unlike
before.  This in turn can cause a ValidateWriter error if an instruction uses
the result of a void call.  (after all, that's the point).

Each backend was modified to not assign a register or save the result of a void
call.

--HG--
extra : convert_revision : f1076b3fa633922ce95c24ac622934be4815376d
2010-09-23 15:08:15 -04:00
..
analysis-tests Bug 578235 - Port jsstack.js to Dehydra with GCC 4.5 r=taras, a=test-only 2010-08-18 18:06:17 -07:00
assembler Bug 597828 Implement setSSECheckState for Solaris Studio compiler r=dvander 2010-09-21 15:56:56 +08:00
build Add support for CL_INCLUDES_PREFIX environment variable for handling localized cl.exe /showIncludes output. (Bug 587372) r=ted a2.0=blocking2.0:final 2010-09-17 12:29:52 -07:00
config Followup to Bug 585625 we need to sync js/src too r=sad build, rs=khuey, a=sad build 2010-09-20 00:07:06 -04:00
ctypes Bug 492849 - Implement Object.preventExtensions, Object.isExtensible. a=waldo,jimb, r=brendan 2010-09-21 11:35:29 -07:00
editline Bug 506041 Part 2: Correct misspellings in source code 2010-05-13 14:19:50 +02:00
gnuplot Bug 579586 - TM: remove doubles from GCTIMER (r=jorendorff) 2010-07-20 09:52:02 -07:00
jsapi-tests Always create a dummy stack frame when crossing compartment boundaries (bug 600015, r=mrbkap). 2010-09-27 15:55:15 -07:00
lirasm Bug 572798 - add LIR_callv (r=nnethercote) 2010-09-23 15:08:15 -04:00
methodjit Fixed bogus assert (bug 597871 fallout, a=orange). 2010-09-27 20:21:11 -07:00
metrics [JAEGER] Merge. 2010-08-02 11:55:59 -07:00
nanojit Bug 572798 - add LIR_callv (r=nnethercote) 2010-09-23 15:08:15 -04:00
perf Bug 492849 - Implement Object.preventExtensions, Object.isExtensible. a=waldo,jimb, r=brendan 2010-09-21 11:35:29 -07:00
ref-config
shell Always create a dummy stack frame when crossing compartment boundaries (bug 600015, r=mrbkap). 2010-09-27 15:55:15 -07:00
t [JAEGER] Reverted accidental test changes. 2010-07-31 18:59:53 -07:00
tests Fix patch merge problem that restored bad old script line for 597945-1.js. 2010-09-25 17:16:35 +02:00
trace-test Fix exception handling inside trace and method JIT integration (bug 597871, r=jorendorff, a=blocking). 2010-09-27 09:02:08 -07:00
tracevis Bug 583143 - Fix bustage with MOZ_TRACEVIS and other NPOTB code (r=lw) 2010-09-20 12:43:52 -07:00
v8 Update our local copy of the V8 benchmarks to the latest test harness. 2010-05-27 17:15:56 -07:00
v8-dtoa Remove unnecessary V8 platform-detection code that broke PPC builds in 562dc7fd7492. r=me. 2010-09-15 16:24:40 -07:00
vprof Bug 555345 - Histogram profiling macros for JIT-generated code (r=rreitmai+) 2010-06-04 14:31:25 -07:00
xpconnect Follow-up for bug 600015. Incorrect use of SwitchToCompartment. 2010-09-27 18:31:32 -07:00
yarr Bug 587346: fix PCRE code length assertion failure. (r=gal) 2010-08-24 14:53:02 -07:00
aclocal.m4
bench.sh
config.mk Revert strict-aliasing disabling now that n810 has shown not to improve without it. Also change from -Wstrict-aliasing=2 to -Wstrict-aliasing=3; gcc claims the latter gives more precise warnings with fewer mistakes, and I don't think we care that much about it being a little slower, for only the files in SpiderMonkey. 2010-03-26 15:32:35 -07:00
configure.in Bug 597976 Make it able to build TraceJIT w/o MethodJIT r=dvander 2010-09-21 16:12:20 +08:00
dtoa.c Bug 584252 - disallow non-standard extensions to float syntax (r=jorendorff) (CLOSED TREE) 2010-08-05 14:33:34 -07:00
find-child.py
imacro_asm.py Bug 563728 - Switch the imacro compiler over to Python. r=Waldo. 2010-05-12 08:49:36 -05:00
imacros.jsasm Bug 581747 - Remove JSOP_CONCATN. Good-night, sweet prince. (r=waldo) 2010-08-01 21:54:09 -07:00
javascript-trace.d Bug 593483 - Unbreak (real) dtrace. r=gal, a=NPOTB 2010-09-16 13:21:12 -07:00
jitstats.tbl
js-config.h.in [JAEGER] Bug 580144: put JS_METHODJIT in js-config.h so that everyone sees the same jscntxt.h structs 2010-07-22 14:32:52 -07:00
js-config.in
js.mdp
js.msg Bug 492849 - Implement Object.preventExtensions, Object.isExtensible. a=waldo,jimb, r=brendan 2010-09-21 11:35:29 -07:00
jsapi.cpp Always create a dummy stack frame when crossing compartment boundaries (bug 600015, r=mrbkap). 2010-09-27 15:55:15 -07:00
jsapi.h Always create a dummy stack frame when crossing compartment boundaries (bug 600015, r=mrbkap). 2010-09-27 15:55:15 -07:00
jsarena.cpp Arena pool macros don't want to die. 2010-07-11 00:09:34 -07:00
jsarena.h Arena pool macros don't want to die. 2010-07-11 00:09:34 -07:00
jsarray.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsarray.h Bug 583143 - Fix bustage with MOZ_TRACEVIS and other NPOTB code (r=lw) 2010-09-20 12:43:52 -07:00
jsast.tbl bug 590774, r=cdleary: implement function::identifier E4X extension 2010-09-07 16:16:34 -07:00
jsatom.cpp Always create a dummy stack frame when crossing compartment boundaries (bug 600015, r=mrbkap). 2010-09-27 15:55:15 -07:00
jsatom.h bug 595207 - making functionNamespaceURIAtom eager for simpler code. r=brendan 2010-09-15 16:55:35 +02:00
jsatominlines.h Bug 572057 - TM: remove weak roots (pigeon hole) r=igor 2010-08-18 12:46:47 -07:00
jsbit.h bug 553812 - separate GC arena info and mark bits from the arena. r=gal,anygregor 2010-04-13 00:59:19 +04:00
jsbool.cpp Bug 581263 - remove slow natives (r=waldo,mrbkap) 2010-08-16 12:35:04 -07:00
jsbool.h Bug 549143 - fatvals 2010-07-14 23:19:36 -07:00
jsbuiltins.cpp Backed out changeset 09ffb30caa47 2010-09-20 12:05:21 -07:00
jsbuiltins.h Bug 596026: PIC-like construct for GETELEM on trace. (r=jorendorff, a=nnethercote,cdleary) 2010-09-15 21:33:17 -07:00
jscell.h Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsclist.h
jscntxt.cpp bug 586161 - making sure that all compartments are purged. r=anygregor 2010-09-27 14:29:01 +02:00
jscntxt.h Merge tracemonkey to mozilla-central. a=blockers. 2010-09-23 20:09:54 -04:00
jscntxtinlines.h Bug 599446, part 2 - Add missing case for non-function callees to assert (a=orange) 2010-09-27 13:09:48 -07:00
jscompartment.cpp bug 586161 - making sure that all compartments are purged. r=anygregor 2010-09-27 14:29:01 +02:00
jscompartment.h Fix extra ';' warning (fallout bug 600015). 2010-09-27 18:37:37 -07:00
jscompat.h
jsconfig.mk
jscpucfg.cpp Merge mozilla-central to tracemonkey. 2010-04-04 14:15:05 -04:00
jscpucfg.h
jsdate.cpp Backed out changeset 09ffb30caa47 2010-09-20 12:05:21 -07:00
jsdate.h Bug 579471 - fast constructors (r=dmandelin,lw) 2010-08-10 16:38:08 -07:00
jsdbgapi.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsdbgapi.h Bug 540675: eviscerate JSStackFrame::callerVersion. (r=lw) 2010-09-13 09:38:22 -07:00
jsdhash.cpp Bug 569821 - js compilation failure on mingw-w64 r=dvander 2010-06-27 01:27:18 +02:00
jsdhash.h
jsdtoa.cpp Bug 549143 - fatvals 2010-07-14 23:19:36 -07:00
jsdtoa.h Bug 590834 - Clean up number-to-string code. r=jwalden. 2010-09-13 13:08:25 -07:00
jsemit.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsemit.h Fix global variables overwriting resolved properties (bug 595917, r=brendan, a=blocking). 2010-09-21 12:38:30 -07:00
jsexn.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsexn.h Bug 549143 - fatvals 2010-07-14 23:19:36 -07:00
jsfun.cpp Fix method-JIT debug mode bugs and add more testing capability (bug 598444, r=sstangl). 2010-09-22 14:29:48 -07:00
jsfun.h Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsfuninlines.h Bug 516255 - Use different classes for arguments objects created inside and outside strict mode code, with slightly different ops, in preparation for implementing strict mode arguments objects' less magical functionality. r=dmandelin 2010-08-11 23:26:59 -07:00
jsgc.cpp Bug 599801 - TM: Clean up Compartment (de)construction. r=sayrer 2010-09-27 15:35:10 -07:00
jsgc.h Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsgcchunk.cpp Merge from Tracemonkey. 2010-08-02 15:55:29 -07:00
jsgcchunk.h fatval tweaks: bump XDR version, remove spurious comment and #defines, realign JSStackFrame 2010-07-15 13:18:12 -07:00
jsgcinlines.h Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsgcstats.cpp No bug. Fix some nits and warning fixes. 2010-09-24 15:05:46 -07:00
jsgcstats.h Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jshash.cpp Bug 549532 - Allow custom memory allocator use in spidermonkey. Part 1. r=dvander. 2010-04-16 15:03:53 -04:00
jshash.h
jshashtable.h Bug 599801 - TM: Clean up Compartment (de)construction. r=sayrer 2010-09-27 15:35:10 -07:00
jsify.pl
jsinterp.cpp Fix exception handling inside trace and method JIT integration (bug 597871, r=jorendorff, a=blocking). 2010-09-27 09:02:08 -07:00
jsinterp.h Bug 596460: try making Interpret not inlined to avoid stack frame bloat in other functions, r=dvander 2010-09-16 15:20:56 -07:00
jsinterpinlines.h Bug 540675: eviscerate JSStackFrame::callerVersion. (r=lw) 2010-09-13 09:38:22 -07:00
jsinttypes.h Bug 537784: [AIX] Build bustage in js/src/jsstdint.h r=ted 2010-03-06 12:59:41 -05:00
jsinvoke.cpp
jsiter.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsiter.h Bug 594574: Change GetPropertyNames to take its out-parameter by address, not by non-const reference. r=brendan 2010-09-21 11:35:29 -07:00
jskeyword.tbl
jskwgen.cpp
jslibmath.h [JAEGER] Windows build fixes 2010-06-01 18:06:46 -07:00
jslock.cpp Add interruptCounter to JSRuntime for JM, bug 589193. r=igor,dvander 2010-09-20 16:21:49 -07:00
jslock.h [JAEGER] Merge from Tracemonkey. 2010-08-30 15:13:32 -07:00
jslocko.asm
jslog2.cpp Bug 557270 - on s390 pointers are 31-bits, have JS_CEILING_LOG2W use size_t instead of JSUword (r=brendan) 2010-04-06 16:10:54 -07:00
jslong.h
jsmath.cpp Bug 564548: faster special cases for Math.pow, r=gal 2010-08-19 14:17:56 -07:00
jsmath.h Bug 549143 - fatvals 2010-07-14 23:19:36 -07:00
jsnativestack.cpp [JAEGER] Merge from fatval & TM. 2010-07-05 18:07:39 -07:00
jsnativestack.h bug 237006 - automatic detection of the native thread stack base. The patch is based on the initial patches for bug 516832 by gal and gregor. r=gregor 2010-05-19 10:29:05 +02:00
jsnum.cpp Bug 558799 - Import FastDtoa code from V8. r=gal. 2010-09-15 11:49:12 -07:00
jsnum.h Bug 597814 - Optimize js_DoubleToECMAInt32 for MSVC and gcc x86_64. r=dvander 2010-09-24 20:19:43 -04:00
jsobj.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsobj.h Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsobjinlines.h Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
json.cpp Bug 599254 - Avoid an unnecessary switch in the JSON parser. r=sayrer. 2010-09-27 17:20:43 -07:00
json.h Bug 599254 - Avoid an unnecessary switch in the JSON parser. r=sayrer. 2010-09-27 17:20:43 -07:00
jsopcode.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsopcode.h Bug 549143 - fatvals 2010-07-14 23:19:36 -07:00
jsopcode.tbl Backed out changeset 09ffb30caa47 2010-09-20 12:05:21 -07:00
jsoplengen.cpp
jsotypes.h
jsparse.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsparse.h Fix global variables overwriting resolved properties (bug 595917, r=brendan, a=blocking). 2010-09-21 12:38:30 -07:00
jsprf.cpp
jsprf.h
jsprobes.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsprobes.h Backout accidental checkin of 149dfce94388 2010-09-14 22:30:36 -07:00
jspropertycache.cpp Google Maps crash on tracemonkey branch (55365, precog r=jorendorff, a=beta6+). 2010-09-11 23:55:25 -07:00
jspropertycache.h Google Maps crash on tracemonkey branch (55365, precog r=jorendorff, a=beta6+). 2010-09-11 23:55:25 -07:00
jspropertycacheinlines.h Bug 492849 - Implement Object.preventExtensions, Object.isExtensible. a=waldo,jimb, r=brendan 2010-09-21 11:35:29 -07:00
jspropertytree.cpp Modularize to avoid inline vs. not ShapeHasher static woes (595615, r=dbaron, a=beta6+/debug-only-fix-for-devs). 2010-09-12 09:39:45 -07:00
jspropertytree.h JSFunction::addLocal never calls Shape::maybeHash (595918, r=jorendorff). 2010-09-13 18:44:34 -07:00
jsproto.tbl bug 533874, r=jimb: expose the parser as a JS API 2010-06-15 13:32:32 -07:00
jsproxy.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsproxy.h Backed out changeset 09ffb30caa47 2010-09-20 12:05:21 -07:00
jsprvtd.h Bug 537873, Bug 514574: Delete unused property operation typedefs: JSDefinePropOp, JSPropertyIdOp. r=luke 2010-09-15 13:43:54 -07:00
jspubtd.h Merge JSScope into JSObject and JSScopeProperty (now js::Shape; bug 558451, r=jorendorff). 2010-08-29 11:57:08 -07:00
jsreflect.cpp bug 594622, r=cdleary: support for TOK_XMLSPACE nodes 2010-09-14 19:55:53 -07:00
jsreflect.h bug 590766, r=cdleary: let-expressions and let-statements 2010-09-07 15:44:31 -07:00
jsregexp.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsregexp.h Backed out changeset 09ffb30caa47 2010-09-20 12:05:21 -07:00
jsregexpinlines.h Bug 593663: emulate flat regexps in three-argument String.prototype.replace. (r=lw) 2010-09-22 10:27:38 -07:00
jsreops.tbl
jsscan.cpp Bug 596502: unbreak XML parsing on JS1.6 and onwards. (r=brendan) 2010-09-18 00:31:36 -07:00
jsscan.h Bug 540675: eviscerate JSStackFrame::callerVersion. (r=lw) 2010-09-13 09:38:22 -07:00
jsscope.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsscope.h bug 597736 - fixing TreeFragment leak. r=gal 2010-09-21 14:58:19 +02:00
jsscopeinlines.h Backed out changeset 09ffb30caa47 2010-09-20 12:05:21 -07:00
jsscript.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsscript.h Bug 540675: eviscerate JSStackFrame::callerVersion. (r=lw) 2010-09-13 09:38:22 -07:00
jsscriptinlines.h [JAEGER] Remove tracerecursion (bug 591539, r=luke). 2010-08-27 21:18:58 -07:00
jsshell.msg [JAEGER] Add assertion that function JITs. r=dvander, r=jorendorff, b=579145 2010-07-15 14:48:35 -07:00
jsstack.js Bug 578235 - Port jsstack.js to Dehydra with GCC 4.5 r=taras, a=test-only 2010-08-18 18:06:17 -07:00
jsstaticcheck.h
jsstdint.h Bug 537784: [AIX] Build bustage in js/src/jsstdint.h r=ted 2010-03-06 12:59:41 -05:00
jsstr.cpp Bug 593663: emulate flat regexps in three-argument String.prototype.replace. (r=lw) 2010-09-22 10:27:38 -07:00
jsstr.h bug 599481 - static string tables should be constant. r=alangpierce 2010-09-25 00:36:58 +02:00
jsstrinlines.h bug 599481 - static string tables should be constant. r=alangpierce 2010-09-25 00:36:58 +02:00
jstl.h Backout c130135dcf02 (Fix for bug 590612 (Speed up js-wrapping in classinfo when we already have a wrapper)). 2010-09-14 22:27:02 -07:00
jstracer.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jstracer.h bug 597736 - fixing TreeFragment leak. r=gal 2010-09-21 14:58:19 +02:00
jstypedarray.cpp Fix test_canvas.html mochitest. Using preventExtensions on a huge typed array is a bad idea right now. Bug 598969. r=brendan 2010-09-23 13:56:11 -04:00
jstypedarray.h Bug 581263 - remove slow natives (r=waldo,mrbkap) 2010-08-16 12:35:04 -07:00
jstypes.h Bug 537873, Bug 514574: Have strict mode code report TypeErrors for assignments, deletions. r=brendan 2010-09-15 13:43:55 -07:00
jsutil.cpp [JAEGER] Merge from Tracemonkey. 2010-08-30 15:13:32 -07:00
jsutil.h Merge JSScope into JSObject and JSScopeProperty (now js::Shape; bug 558451, r=jorendorff). 2010-08-29 11:57:08 -07:00
jsval.h Missing union member for big-endian jsval_layout struct (r=ppc is burning) 2010-09-10 21:20:46 -07:00
jsvalue.h Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jsvector.h Backout c130135dcf02 (Fix for bug 590612 (Speed up js-wrapping in classinfo when we already have a wrapper)). 2010-09-14 22:27:02 -07:00
jsversion.h Add an API for compartments (570040, r=jorendorff). 2010-06-04 16:32:10 -07:00
jswin.h Forgotten jswin.h file. (r=red) 2010-08-11 14:59:19 -07:00
jswince.asm
jswrapper.cpp Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
jswrapper.h Remove useless comment. 2010-09-25 23:05:36 -04:00
jsxdrapi.cpp Bug 438633: Give new JSScript objects lifetimes like GCThings. r=brendan 2010-08-20 13:11:05 -07:00
jsxdrapi.h Increment JSXDR_BYTECODE_VERSION 2010-09-13 13:21:31 -07:00
jsxml.cpp Merge mozilla-central to tracemonkey. 2010-09-26 12:49:11 -04:00
jsxml.h Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
lock_sparcv8plus.il
lock_sparcv9.il
Makefile.in Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
Makefile.ref Remove special constructs no longer needed for Narcissus (bug 579137, r=gal) 2010-07-16 18:16:07 -07:00
nanojit-import-filemap
nanojit-import-rev Update nanojit-import-rev stamp. 2010-09-22 19:26:04 -07:00
perfect.js
plify_jsdhash.sed
prmjtime.cpp Correct GMT offsets for New Zealand and the Kingdom of Tonga, bug 591845. r=brendan, CLOSED TREE 2010-08-31 17:57:14 -07:00
prmjtime.h Date performance fixes, bug 578259. r=waldo 2010-08-17 10:42:57 -07:00
README.html
resource.h
rules.mk
SpiderMonkey.rsp
time.sh
Y.js

<!-- ***** BEGIN LICENSE BLOCK *****
   - Version: MPL 1.1/GPL 2.0/LGPL 2.1
   -
   - The contents of this file are subject to the Mozilla Public License Version
   - 1.1 (the "License"); you may not use this file except in compliance with
   - the License. You may obtain a copy of the License at
   - http://www.mozilla.org/MPL/
   -
   - Software distributed under the License is distributed on an "AS IS" basis,
   - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
   - for the specific language governing rights and limitations under the
   - License.
   - 
   - The Original Code is Mozilla Communicator client code, released
   - March 31, 1998.
   - 
   - The Initial Developer of the Original Code is
   - Netscape Communications Corporation.
   - Portions created by the Initial Developer are Copyright (C) 1998-1999
   - the Initial Developer. All Rights Reserved.
   - 
   - Contributor(s):
   - 
   - Alternatively, the contents of this file may be used under the terms of
   - either of the GNU General Public License Version 2 or later (the "GPL"),
   - or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
   - in which case the provisions of the GPL or the LGPL are applicable instead
   - of those above. If you wish to allow use of your version of this file only
   - under the terms of either the GPL or the LGPL, and not to allow others to
   - use your version of this file under the terms of the MPL, indicate your
   - decision by deleting the provisions above and replace them with the notice
   - and other provisions required by the GPL or the LGPL. If you do not delete
   - the provisions above, a recipient may use your version of this file under
   - the terms of any one of the MPL, the GPL or the LGPL.
   -
   - ***** END LICENSE BLOCK ***** -->
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta http-equiv="Refresh"
	 content="0;URL=http://developer.mozilla.org/en/docs/SpiderMonkey">
   <title>SpiderMonkey README</title>
</head>
<body>

<h1>SpiderMonkey README</h1>

<p>See the
<a href="http://developer.mozilla.org/en/docs/SpiderMonkey">SpiderMonkey
pages</a> on the Mozilla Developer Center</a>.

</body>
</html>