Commit Graph

187 Commits

Author SHA1 Message Date
André Bargull
8a555a2bfd Bug 1303091 - Share static Intl data across compartments. r=Waldo, r=jonco
--HG--
rename : js/src/builtin/IntlTzData.js => js/src/builtin/IntlTimeZoneData.h
extra : rebase_source : 558f4fba32efdee429423055f3786e1dc09e4d68
2016-11-17 14:40:18 -08:00
Benjamin Bouvier
fcf5a05013 Bug 1307768: Don't include wasmGuardPages with the rest of the ClassInfo fields; r=njn
MozReview-Commit-ID: 9tqQdAn2Ywa

--HG--
extra : rebase_source : 0a8ed1a2637968285f497ef3e41aa3b75a8ed49f
extra : amend_source : 759c252412b2e5ba99805cf5bb05828ff947f833
2016-10-14 14:53:08 +02:00
Benjamin Bouvier
b81b572a1c Bug 1303013: Account memory for wasm guard pages; r=njn, r=luke
MozReview-Commit-ID: BHS1UfgT1yf

--HG--
extra : rebase_source : 7fea9606f776a904870fdfb4bbb93e43fd4b0a44
2016-09-19 19:39:50 +02:00
Shu-yu Guo
03569f36dd Bug 1263355 - Report memory metrics for Scopes. (r=njn) 2016-08-25 01:28:47 -07:00
Shu-yu Guo
e2b6833e0a Bug 1263355 - Rewrite the frontend: bindings. (r=jorendorff,Waldo) 2016-08-25 01:28:47 -07:00
Jan de Mooij
d8047f2b2f Bug 1295967 - Share Shapes and BaseShapes across compartments. r=jonco,fitzgen,njn 2016-08-23 11:25:54 +02:00
Jon Coppeard
17304689a2 Bug 1291292 - Use dynamic chunk allocation for the nursery r=terrence 2016-08-11 17:14:56 +01:00
Jan de Mooij
0ad12515f4 Bug 1292892 part 1 - Stop using JSRuntime outside SpiderMonkey. r=bz,terrence,fitzgen,kanru 2016-08-11 14:39:22 +02:00
Jan de Mooij
900af968f3 Bug 1283855 part 28 - Make more GC APIs take JSContext instead of JSRuntime. r=terrence
--HG--
extra : rebase_source : c2d35b5d45cad074b9a9a144bc25ea4a32b8b246
2016-07-07 09:56:09 +02:00
Nick Fitzgerald
42225056cf Bug 1211723 and 1260570 - Share JS source text between JSRuntimes; r=jimb
This commit adds `SharedImmutableStringsCache` which allows for de-duplication
and sharing of immutable strings between threads and JSRuntimes.

Each JSRuntime gets a SharedImmutableStringsCache member, but the accessor
always returns the parent runtime's cache. The caches in child JSRuntime's are
not wasting space, however, as initialization and allocation of the table
happens lazily within SharedImmutableStringsCache.

Furthermore, this commit removes `js::ScriptSource::Parent` and the
`CompressedSourceSet`. They are unnecessary because source text is always shared
via the parent runtime's `SharedImmutableStringsCache` now.
2016-05-06 16:53:45 -07:00
Nicholas Nethercote
5eb5cc7d6c Bug 1132502 (part 1) - Abort if compartmentStats is null during memory reporting. r=jandem.
We have inconclusive evidence that compartmentStats is sometimes nullptr during
memory reporting, which would be bad. This patch makes us abort in that case.
It also changes some pointers to references to make the expected non-nullness
clearer.

--HG--
extra : rebase_source : c49f727450ce065d0e84d7728057c93d35353e91
2016-04-15 12:03:39 +10:00
Nicholas Nethercote
931d190779 Bug 1244841 - Don't measure SharedArrayBuffer objects multiple times. r=lth.
Redoes object element measurement and reporting:

- Adds "non-heap/elements/shared", which reports a (size / refcount)
  measurement. Previously these measurements went into
  "non-heap/elements/mapped" and the full size would be erroneously reported
  for every thread sharing the buffer.

- Renames "non-heap/elements/mapped" as "non-heap/elements/normal".

- Renames "malloc-heap/elements/non-asm.js" as "malloc-heap/elements/normal".

- Leaves "{malloc,non}-heap/elements/asm.js" unchanged.

--HG--
extra : rebase_source : cd1a660000fcb95674b317098be2dfec792b2c8e
2016-02-12 09:18:46 +11:00
Nicholas Nethercote
462eb9a0d4 Bug 1245737 (part 2) - Don't bother measuring DtoaState. r=bhackett.
It's gone from 4,096 bytes per JS thread to 72 bytes per thread. (Also, the
old code only measured the DtoaState for the main thread.)

--HG--
extra : rebase_source : bfe0772b8c760a45ca3665e2c0939b121189520a
2016-02-05 14:50:55 +11:00
Nicholas Nethercote
ff840e5f16 Bug 1246855 (part 2) - Measure CompartmentPrivates during memory reporting. r=terrence.
This also expands the coverage to include the hash table elements in the
mWrappedJSMap.
2016-02-10 08:41:38 +11:00
Nicholas Nethercote
3a94c4149a Bug 1245761 (part 2) - Measure JIT compartments. r=jandem.
--HG--
extra : rebase_source : cc6d1c57306405cdaada9ff876256b8eb2dad03f
2016-02-04 17:36:06 +11:00
Michael Wu
ed4b205b47 Bug 1212663 - Use doxygen style comments in jsapi, r=Waldo 2015-10-17 13:27:16 -04:00
Shu-yu Guo
76da4d1112 Bug 1202902 - Support non-syntactic extensible lexical scopes. (r=billm) 2015-10-06 14:00:29 -07:00
Terrence Cole
fe83447e72 Bug 1196848 - Add Zone::uniqueIds to about:memory reports; r=njn
--HG--
extra : rebase_source : 313662129f131a9249b73232c600f34c92738078
2015-08-26 14:51:43 -07:00
Terrence Cole
4955cf8ac2 Bug 1196925 - Remove the non-existing relocatable store buffer counts from about:memory; r=njn 2015-08-26 14:51:43 -07:00
Terrence Cole
ca1d87a88a Backout 15fa4c3a45ec (Bug 1196848) for being on top of a regression.
--HG--
extra : rebase_source : 7783be3966c4f963ad9aadfa9dc145b1b832c143
2015-09-03 09:35:43 -07:00
Terrence Cole
46a19ca98d Backout ff66ba4688c0 (Bug 1196925) for being on top of a regression.
--HG--
extra : rebase_source : 2a97f610801a7157f513ed3a3b52533d724f1c81
2015-09-03 09:35:02 -07:00
Terrence Cole
23db9f8879 Bug 1196925 - Remove the non-existing relocatable store buffer counts from about:memory; r=njn
--HG--
extra : rebase_source : 7b704f68283b7921225e43ec607315f283556817
2015-08-26 14:51:43 -07:00
Terrence Cole
899ec10be3 Bug 1196848 - Add Zone::uniqueIds to about:memory reports; r=njn
--HG--
extra : rebase_source : 0b7173fc4d344f55b5b8c41e010ea65c7048091e
2015-08-26 14:51:43 -07:00
Jeff Walden
d878a013d1 Bug 1185739 - Fix self-comparison warnings in MemoryMetrics.h. r=efaust
--HG--
extra : rebase_source : 0efd43d45100d4fe56cd22039c2349635c3d9161
2015-07-20 15:17:25 -07:00
Nicholas Nethercote
915d8780c8 Bug 1181452 - Add memory reporting infrastructure for Servo to SpiderMonkey. r=till.
Basically, this change is all about aggregating SpiderMonkey's fine-grained
measurements into the new set of coarse-grained measurements, called
ServoSizes (which is similar to the existing TabSizes). The change utilizes and
extends the existing macro machinery to do this in a way that has some chance
to maintaining correctness over the long-term despite the fact that this code
is so fiddly.

--HG--
extra : rebase_source : 1dc3d92830902d9e24496dcdc5f1ee8a6fe39fb4
2015-07-07 23:18:44 -07:00
Terrence Cole
c01ef51c2d Bug 1167453 - Rename JSGCTraceKind and make it a C++11 enum class; r=jonco
--HG--
extra : rebase_source : 7dbeee0826fa20477ed227c9d336fdfe6de6ffd2
2015-05-22 10:40:24 -07:00
Brian Hackett
a7c7f13a97 Bug 1161077 - Allocate unboxed arrays in the nursery, r=terrence. 2015-05-04 16:36:54 -07:00
Jim Blandy
fc9d59392a Bug 1062473: Implement JS::ubi::Node::size for JSObjects. r=sfink,terrence
--HG--
extra : rebase_source : cc27cefa89ab9689cbfe7f62635a00c3363f4265
extra : histedit_source : fd7c1ca09c654b27536774d7b722319819dd74e0
2015-04-01 18:04:53 -07:00
Jan de Mooij
b8b1677f0f Bug 1144366 - Switch SpiderMonkey and XPConnect style from |T *t| to |T* t|. r=jorendorff 2015-03-28 23:22:11 +01:00
Phil Ringnalda
c8a25251c1 Backed out changeset 0c030f97a04f (bug 1144366) for being on top of patches being backed out
CLOSED TREE
2015-03-28 10:39:56 -07:00
Jan de Mooij
8d6d44ecb8 Bug 1144366 - Switch SpiderMonkey and XPConnect style from |T *t| to |T* t|. r=jorendorff 2015-03-28 12:08:37 +01:00
Brian Hackett
533750696e Bug 1143256 - Store object metadata using a weak map, r=luke. 2015-03-25 09:07:51 -07:00
Ryan VanderMeulen
6fa51cb894 Backed out changeset d3c9b899f7d2 (bug 1143256) for frequent browser_perf-refresh.js leaks.
--HG--
extra : rebase_source : d8872879f2e6bec248ac3a5fc8b254be437abea0
2015-03-20 16:07:42 -04:00
Brian Hackett
73cf6b02a1 Bug 1143256 - Store object metadata using a weak map, r=luke. 2015-03-20 06:33:33 -07:00
Terrence Cole
bb7d88df07 Bug 1134425 - Part 1: move the allocator interface code out of line; r=jonco
--HG--
extra : rebase_source : cbeb8097a3c55397cc0c0f476deb0011ad496f62
2015-03-04 09:32:02 -08:00
Jon Coppeard
439686762a Bug 1134255 - Add breakdown of allocated and unused GC things by kind in memory reports r=njn
--HG--
extra : rebase_source : aaec1857d252090c2aea9fc8e45a2a82ac492b6c
2015-02-19 11:56:00 +00:00
Brian Hackett
909e578fea Bug 1125930 - Rename TypeObject to ObjectGroup, r=jandem. 2015-02-02 11:20:38 -07:00
Masatoshi Kimura
bf312ad056 Bug 1120062 - Part 1: Remove most Nullptr.h includes. r=waldo 2015-01-11 11:34:52 +09:00
Ehsan Akhgari
4354953b4f Bug 1118486 - Part 1: Use = delete instead of MOZ_DELETE directly; r=Waldo
Most of this patch (with the exception of dom/bindings/Codegen.py) was
generated by the following bash script:

#!/bin/bash

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "*/.git*" \
       ! -wholename "obj-*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_DELETE '= delete'
2015-01-08 23:19:05 -05:00
Brian Hackett
ca1120a47e Bug 1083600 - Use inline data for small transparent typed objects, r=sfink,nmatsakis. 2014-10-29 11:14:53 -07:00
Brian Hackett
0593b4473d Bug 1061404 - Move ArrayBuffer view list into per compartment tables, r=sfink. 2014-09-17 11:13:17 -07:00
Shu-yu Guo
c2475516fe Bug 1056411 - Part 1: Remove DebugFromC and clean up compartment debug mode logic. (r=jimb) 2014-09-08 21:03:31 -07:00
Nicholas Nethercote
0c90379b35 Bug 1023719 - Report notable classes in the JS memory reporter. r=till.
--HG--
extra : rebase_source : 3139b17f6a660f460adb820c390368dc8367069a
2014-04-15 19:43:18 -07:00
Jan de Mooij
6675f63031 Bug 1037886 - Report Latin1 and TwoByte strings separately in about:memory. r=njn 2014-07-16 19:11:50 +02:00
Jason Orendorff
26bdfdcc2f Bug 645416, part 3 - Symbol layout and GC support for allocating them. r=terrence.
Layout: js/src/vm/Symbol.h defines the new class JS::Symbol. JS::Symbol is the
same size as JSString on all platforms, because the allocator does not support
smaller allocations.

Allocation: Since the purpose of symbols is to serve as property keys, they are
always allocated in the atoms compartment.

We take a lock when allocating. This could probably be replaced with a
main-thread-only assertion. However, if atom allocation is not already a
bottleneck, symbol allocation probably never will be.

Symbols are given their own finalize-class in the GC. This means we allocate a
page per zone for symbols, even though they are only ever allocated in the
atoms zone. Terrence thought this could be easily fixed later. It should be; we
never touch the page, but a 32-bit virtual address space does not just have
infinite pages to spare.

A jsapi-test exercises the new symbol allocation code. A few oddities in
jsapi-tests are fixed in passing.

Discussion after review led to some new assertions about minimum object size in
AllocateObject and AllocateNonObject.

--HG--
extra : rebase_source : 45abb651d3b1b493d77a5dd0eb554f96b058c63a
2014-06-23 10:55:51 -05:00
Brian Hackett
3ba0ec8938 Bug 1020012 - Consolidate ScriptSources with the same source, r=luke. 2014-06-21 10:39:04 -07:00
Nicholas Nethercote
aaf6fb2124 Bug 1010064 - Allow memory reports to be anonymized. r=bsmedberg.
--HG--
extra : rebase_source : 5eb756b17a97e751deb0f47e909fdb35533cb23b
2014-05-20 23:06:54 -07:00
Brian Hackett
5385dceeca Bug 1024038 - Remove YARR, r=jandem. 2014-06-16 15:37:53 -07:00
Nicholas Nethercote
2207ecfbcd Backout 277bacd9f2f8 (bug 1023719) for causing intermittent crashes.
--HG--
extra : rebase_source : e6c9e54dd2df572da7f8cdf3cd6226a1aeeee883
2014-06-13 06:39:16 -07:00
Nicholas Nethercote
feeaf7db9a Bug 1023719 - Report notable classes in the JS memory reporter. r=till.
--HG--
extra : rebase_source : 5a842c36cf7202f6751290da80cefb005fd8db95
2014-04-15 19:43:18 -07:00