Commit Graph

744 Commits

Author SHA1 Message Date
Nicolas Pierron
687329b7b8 Bug 744670 - Port StackIter modification of IonMonkey. r=luke 2012-04-13 13:45:01 -07:00
Brian Hackett
49f87b254c Add most handles and stack rooters needed for exact scanning on shell benchmarks, bug 714647. r=billm 2012-04-12 09:23:51 -07:00
Matt Brubeck
3f73a423cd Back out e4c82a6b298c, 036194408a50, 39acc9f51df8 (bug 714647 and followups) because of test_finalizer.js crashes in Linux64 PGO builds 2012-04-12 22:07:43 -07:00
Brian Hackett
bf3e148c0a Add most handles and stack rooters needed for exact scanning on shell benchmarks, bug 714647. r=billm 2012-04-12 09:23:51 -07:00
Luke Wagner
4a5cf1cd46 Bug 740446 - make 'arguments' more like a normal local binding (r=bhackett) 2012-04-02 08:58:30 -07:00
Luke Wagner
cebbba852e Bug 740259 - Assert that dynamic binding access is expected (r=bhackett) 2012-03-16 12:02:37 -07:00
Boris Zbarsky
284e65c088 Bug 738356. Add JSAPI for doing the equivalent of Function.prototype.bind. r=jorendorff 2012-04-05 13:14:52 -04:00
David Mandelin
905c0f1adb Bug 739808: Remove method cloning optimization and method barrier, r=luke
--HG--
extra : rebase_source : d383c3704c3efd08f9fbf1324433a94fc4a8dbb8
2012-03-23 17:59:56 -07:00
Jeff Walden
62474517e5 Bug 738075 - Remove JSFunction::u::n::clasp, and change associated code accordingly. r=dmandelin 2012-03-12 16:16:40 -07:00
Igor Bukanov
77f4a42ed3 bug 737624 - memory-only encoding/decoding of scripts and functions. r=:luke
The patch shrinks the API presented in jsxdrapi.h down to 4 functions to
encode/decode scripts and interpreted functions to/from the memory. The
newly introduced implementation header vm/Xdr.h replaces the former
JSXDRState with the template class XDRState parametrized by the enum
type with two constants, XDR_ENCODE and XDR_DECODE. This way a compiler
can fully eliminate the former runtime checks for the decoding/encoding
mode. As a drawback this required to explicitly instantiate the xdr
implementation as I do not want to put all the xdr code to header files.

The memory-only XDR allows to avoid coping filename and to-be-atomized
chars to a temporary buffer as the code can just access the buffer
directly. Another change is that new XDRScript takes as a parameter its
parent script. This allowed to avoid keeping filename in XDRState and
simplify the filename management.

Another change is the removal of JS_HAS_HDR. As CloneScript uses XDR to
copy a script, JS_HAS_XDR cannot be disabled.

--HG--
rename : js/src/jsxdrapi.cpp => js/src/vm/Xdr.cpp
extra : rebase_source : f8f1536a86b7c3fe7296a16b6677bd21664af98a
2012-02-20 11:58:00 +01:00
Dão Gottwald
63ed9dae81 Backed out changeset 30798fdc5bad 2012-03-24 12:33:30 +01:00
Igor Bukanov
24b01abf6b bug 737624 - memory-only encoding/decoding of scripts and functions. r=:luke
The patch shrinks the API presented in jsxdrapi.h down to 4 functions to
encode/decode scripts and interpreted functions to/from the memory. The
newly introduced implementation header vm/Xdr.h replaces the former
JSXDRState with the template class XDRState parametrized by the enum
type with two constants, XDR_ENCODE and XDR_DECODE. This way a compiler
can fully eliminate the former runtime checks for the decoding/encoding
mode. As a drawback this required to explicitly instantiate the xdr
implementation as I do not want to put all the xdr code to header files.

The memory-only XDR allows to avoid coping filename and to-be-atomized
chars to a temporary buffer as the code can just access the buffer
directly. Another change is that new XDRScript takes as a parameter its
parent script. This allowed to avoid keeping filename in XDRState and
simplify the filename management.

Another change is the removal of JS_HAS_HDR. As CloneScript uses XDR to
copy a script, JS_HAS_XDR cannot be disabled.

--HG--
rename : js/src/jsxdrapi.cpp => js/src/vm/Xdr.cpp
2012-02-20 11:58:00 +01:00
Ms2ger
198867ded9 Backed out changeset f33e1e959036; r=bustage 2012-03-24 11:04:34 +01:00
Igor Bukanov
7226b2e716 bug 737624 - memory-only encoding/decoding of scripts and functions. r=:luke
The patch shrinks the API presented in jsxdrapi.h down to 4 functions to
encode/decode scripts and interpreted functions to/from the memory. The
newly introduced implementation header vm/Xdr.h replaces the former
JSXDRState with the template class XDRState parametrized by the enum
type with two constants, XDR_ENCODE and XDR_DECODE. This way a compiler
can fully eliminate the former runtime checks for the decoding/encoding
mode. As a drawback this required to explicitly instantiate the xdr
implementation as I do not want to put all the xdr code to header files.

The memory-only XDR allows to avoid coping filename and to-be-atomized
chars to a temporary buffer as the code can just access the buffer
directly. Another change is that new XDRScript takes as a parameter its
parent script. This allowed to avoid keeping filename in XDRState and
simplify the filename management.

Another change is the removal of JS_HAS_HDR. As CloneScript uses XDR to
copy a script, JS_HAS_XDR cannot be disabled.

--HG--
rename : js/src/jsxdrapi.cpp => js/src/vm/Xdr.cpp
2012-02-20 11:58:00 +01:00
Terrence Cole
0cf4763bf0 Bug 737195 - Add barriers to JSFunction::atom; r=billm
This is only ever initialized, so it needs generational barriers, but not
incremental barriers.
2012-03-19 17:24:05 -07:00
Luke Wagner
a15b5ea71e Bug 733950 - re-add the f.apply(arguments) optimization (r=bhackett) 2012-02-10 16:31:48 -08:00
Luke Wagner
f3939cce37 Bug 733950 - create arguments object eagerly (r=bhackett)
--HG--
rename : js/src/jsfun.cpp => js/src/vm/ArgumentsObject.cpp
2012-01-17 16:35:12 -08:00
Luke Wagner
4d11f631ed Backed out changeset d2107141265f to fix message 2012-03-15 10:39:02 -07:00
Luke Wagner
de282a3b73 Backed out changeset 8f3b804118ef to fix message 2012-03-15 10:37:24 -07:00
Luke Wagner
435531d3a4 Bug 730497 - re-add the f.apply(arguments) optimization (r=bhackett)
--HG--
rename : js/src/jsfun.cpp => js/src/vm/ArgumentsObject.cpp
extra : rebase_source : 28c9c4c7ea9841ea42142cf88d1091d20a4f7f9d
2012-02-10 16:31:48 -08:00
Luke Wagner
f81c65703b Bug 730497 - create arguments object eagerly (r=bhackett)
--HG--
rename : js/src/jsfun.cpp => js/src/vm/ArgumentsObject.cpp
extra : rebase_source : 78e9eccc7c3dd4570d2f78f7b5b5eb2138813e99
2012-01-17 16:35:12 -08:00
Luke Wagner
7db6258ebf Bug 730497 - rm flat closures (r=bhackett,waldo)
--HG--
extra : rebase_source : cf704765ad227abced9e8804aaeb1dc8d12fc5a8
2012-02-27 23:49:02 -08:00
David Anderson
47563b2221 Remove JS_GetScriptedCaller (bug 732652, r=luke,mrbkap,bholley,smaug,bent). 2012-03-06 15:33:12 -08:00
David Mandelin
4b287e8788 Bug 733260 followup: use uint32_t for array and string lengths, r=luke
--HG--
extra : rebase_source : 1729b4b927fde0678872b9de62a7466381aa07c3
2012-03-06 15:52:55 -08:00
David Mandelin
77d336e566 Bug 733260: remove typedef jsuint, r=luke
--HG--
extra : rebase_source : e8f576e1b5b189b47807c613c0cff79f5c8038e7
2012-03-05 18:43:45 -08:00
Terrence Cole
191929071f Bug 728343 - Make unbarriered object marking interface indirect ; r=billm
This will allow us to move objects that are not wrapped in a HeapPtr.
2012-02-17 11:46:11 -08:00
David Mandelin
60e80d55b6 Bug 730511: remove obsolete typedefs intN, uintN, r=luke 2012-02-28 15:11:11 -08:00
Luke Wagner
f6301bef27 Bug 729382 - move the rest of the CallObject into ScopeObject (r=waldo) 2012-02-23 13:58:39 -08:00
Luke Wagner
644e9f3621 Bug 724790 - get rid of the hasOverriddenArgs funny business (r=waldo) 2012-02-07 12:34:29 -08:00
Terrence Cole
7e0032bea8 Bug 727306 - Specialize HeapValue::postWriteBarrier for object slots; r=billm
Because we need to re-alloc the object slots pointers for slots growth and
actively move the slots buffer between objects in TradeGuts, we cannot safely
store pointers to slots in our write buffer.  Instead we want to store a pair of
JSObject* + offset in the write buffer.  This effectively means that we need to
specialize the HeapValue::postWriteBarrier used when storing to slots.  This
patch sub-classes HeapValue and uses this sub-class for object slots.

--HG--
extra : rebase_source : 632ad9fd74f638cf9cadc19d6bc0aac8d6cc1cb1
2012-02-17 18:43:48 -08:00
Igor Bukanov
fc29d0f64c bug 726944 - Remove JSClass::xdrObject and related functionality. r=luke 2012-02-13 09:02:21 +01:00
Jeff Walden
a3aa8b54d1 Bug 728423 - Fix warnings in js/src related to JSObject::asString et al (r=luke)
--HG--
extra : rebase_source : 8b64d2593d684a4e5d0d1ee87072db03afb78efe
2012-02-20 13:56:10 -08:00
Bill McCloskey
6b3aa0565d Bug 641025 - Incremental GC (r=igor,smaug,roc,cdleary,gregor) 2012-02-17 14:35:20 -08:00
Terrence Cole
b978cd9469 Bug 727281 - Make JSObject* for Root and Barriered marking indirect; r=billm
This will allow us to move HeapPtr and rooted objects when tracing.

--HG--
extra : rebase_source : 6752792c1610899350eee1d5151136090de94f42
2012-02-14 15:19:55 -08:00
Jeff Walden
2396d6c1ad Bug 728105 - Remove JSObject::getThrowTypeError. r=bhackett 2012-02-16 19:10:59 -08:00
Terrence Cole
b9affe53b5 Bug 726845 - Make Value marking interfaces indirect; r=billm
This will eventually allow the GC to update Values that reference an Object,
when moving an object.
2012-02-15 17:16:53 -08:00
Jeff Walden
3252341ae4 Bug 725888 - Remove some js_GetClassPrototype calls, using faster methods on GlobalObject instead. Also introduce JS_GetObjectPrototype to retrieve Object.prototype so that a friend API can be made un-friendly. r=dmandelin
--HG--
extra : rebase_source : d68d7f1fdcc1bc9a1a027c08ea62bebd8e9d0178
2012-02-07 11:45:18 -08:00
Luke Wagner
05d60df8f2 Bug 723791 - fun_getProperty needs a method barrier (r=jorendorff)
--HG--
extra : rebase_source : 3fea7a8d9f965e921bb2744b8588f241e2e7c843
2012-02-03 00:11:31 -08:00
Jason Orendorff
65c74671e7 Bug 699565 - Part 5 - for-of loops on arguments objects. r=bhackett. 2012-02-07 12:57:17 -06:00
Nicholas Nethercote
26f5d80631 Bug 722595 - Add memory reporters for misc things hanging off JS objects. r=bhackett.
--HG--
extra : rebase_source : 211b35134923f4cb99625bb240b96e81f0f28b4b
2012-01-30 18:12:03 -08:00
Jeff Walden
2ca39644c4 Remove internal #includes of jsstdint.h, the functionality of which is now part of the JSAPI and need not be explicitly #included. No bug, r=evilpies, r=jorendorff, r=terrence, all over IRC
--HG--
extra : rebase_source : 073e357a4f7bcfe1af4de5e7370d10dae9a3a07d
2012-01-22 21:22:10 -08:00
Terrence Cole
9f235d9fdf Bug 720840 - Call MarkStringUnbarriered directly; r=billm
We have a special marker function for handling the Atom list because we need to
call JS_SET_TRACING_INDEX externally to avoid clobbering the index.  However,
nobody cares about the index here and if they do, they can add custom debug
code.  It is better at this point to have a consistent and correct interface,
thus we remove the specialized atomized string marking in favor of the existing
markers.  Additionally, this is only used during root marking so we can switch
to using MarkRoot for the extra assertions.

--HG--
extra : rebase_source : b4448f7fde8990a727bf2893e53688690e170535
2012-01-24 15:21:44 -08:00
Brian Hackett
0149f21a7d Compile large scripts in chunks, bug 706914. r=dvander 2012-01-18 16:40:18 -08:00
Chris Leary
3c72dbeee9 Bug 717762: Proliferate js_memcpy and PodCopy, take 2. (r=luke)
--HG--
extra : rebase_source : 73083063f32036d037b34f0ec96d06192f2ae649
2012-01-17 14:32:36 -08:00
Luke Wagner
52f5f3e08b Bug 718022 - further nerf f.arguments (r=waldo,sr=dmandelin)
--HG--
extra : rebase_source : a93cf7e665753afc38d26a9e3cd2d328eef53b42
2012-01-17 16:34:24 -08:00
Jeff Walden
84ad2e6e48 Bug 713965 - Replace deleteGeneric (taking a jsid) with deleteByValue (taking a Value), and use the property-type-specific methods exclusively. r=bhackett
--HG--
extra : rebase_source : c9273f81996c755f6b3814895a4ce64f390f7c50
2011-12-28 16:33:20 -06:00
Luke Wagner
395fb00310 Bug 713311 - give the remaining scope objects typed interfaces (r=waldo)
--HG--
rename : js/src/vm/CallObject-inl.h => js/src/vm/ScopeObject-inl.h
rename : js/src/vm/CallObject.cpp => js/src/vm/ScopeObject.cpp
rename : js/src/vm/CallObject.h => js/src/vm/ScopeObject.h
extra : rebase_source : 0efa6c9ac4ceb10f48fe7ee7b199333da2b54cd9
2012-01-02 15:02:05 -08:00
Brian Hackett
95d4e2f5d9 Backed out changeset 4282a285d381 (bug 707049 backout). 2011-12-31 07:32:04 -07:00
Ms2ger
a0619211ee Backout 0d642e4e08cf (bug 707049); requested by evilpie. 2011-12-31 15:13:01 +01:00
Brian Hackett
157daeeaa6 Add dynamic analysis for identifying moving GC hazards, autorooter classes, some VM rooters, bug 707049. r=billm 2011-12-30 20:12:45 -07:00