Граф коммитов

435 Коммитов

Автор SHA1 Сообщение Дата
Tom Schuster f420e22143 Bug 1633145 - Replace JSID_IS_GCTHING. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D72538
2020-04-26 17:03:01 +00:00
Sylvestre Ledru 34acbb653a Bug 1619165 - Reformat recent changes to the Google coding style r=andi
First reformat with clang-format 10

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D68802
2020-04-25 09:40:08 +00:00
Jon Coppeard a7194d3716 Bug 1425450 - Only trace JS holders in collecting zones r=mccr8
Now that we have some per-zone vectors we can skip tracing those for zones that are not being collected.

Differential Revision: https://phabricator.services.mozilla.com/D68523
2020-04-20 17:08:54 +00:00
Jon Coppeard f09a0bc433 Bug 1425450 - Use a per-zone vector of JS holders where possible r=mccr8
Currently the JS holders table is represented as a map which contains pointers to entries in a SegmentedVector.  This patch keeps the single map but use a vector per zone and also has a catch-all vector for where we don't know the zone or the holder can have pointers to more than one zone.

Differential Revision: https://phabricator.services.mozilla.com/D68522
2020-04-20 17:08:26 +00:00
Jon Coppeard ec43abf814 Bug 1425450 - Supress rooting analysis warning when removing a JS holder r=mccr8
Currently we get a rooting hazard when nsWrapperCache::UpdateWrapperForNewGlobal calls ReleaseWrapper because the analysis can't see through the virtual method call.

Differential Revision: https://phabricator.services.mozilla.com/D71600
2020-04-20 17:08:00 +00:00
Andrew McCreight ca427d70af Bug 1425450 - Pass zone information through when preserving wrappers r=mccr8
This is bascially the same as your original patch.

Differential Revision: https://phabricator.services.mozilla.com/D68520
2020-04-20 17:07:58 +00:00
Jon Coppeard e0b4ed4d95 Bug 1425450 - Remove unused IsJsHolder methods r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D68519
2020-04-20 17:07:53 +00:00
Jon Coppeard 65918bc23d Bug 1425450 - Remove dead JSHolderMap entries lazily when the vector is next iterated r=mccr8
Currently, to remove a holder entry from a vector we swap the entry with the last one in the vector and then shrink the vector (and fix up the map).  With per-zone vectors we won't have a reference to the vector to get the last entry.  One solution would be to store the zone in the entry and look up the vector in a map but I'd like to avoid this if possible because of the space overhead and the extra lookup.

This patch defers clears the entry's pointers when it is removed and actually removes it when the vector is next iterated.

Differential Revision: https://phabricator.services.mozilla.com/D68518
2020-04-20 17:06:55 +00:00
Jon Coppeard 78e6febe6d Bug 1629022 - Fix build bustage in beta builds r=mccr8
The patch makes sure the checkSingleZoneHolders variable is always present.  I expect it will get optimised away in builds where it's unused.

Differential Revision: https://phabricator.services.mozilla.com/D70818

--HG--
extra : moz-landing-system : lando
2020-04-14 15:20:45 +00:00
Bogdan Tara 2d4b72dc82 Backed out changeset 181a123cd227 (bug 1629022) by jonco's request CLOSED TREE 2020-04-14 16:36:47 +03:00
Jon Coppeard 93fa5f1ac1 Bug 1629022 - Fix build bustage in beta builds r=mccr8
The patch makes sure the checkSingleZoneHolders variable is always present.  I expect it will get optimised away in builds where it's unused.

Differential Revision: https://phabricator.services.mozilla.com/D70818

--HG--
extra : moz-landing-system : lando
2020-04-14 13:28:11 +00:00
Jon Coppeard 11fc44d6aa Bug 1628371 - Check whether JS holders are single-zone in nightly builds too r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D70220

--HG--
extra : moz-landing-system : lando
2020-04-09 09:50:26 +00:00
Bogdan Tara eddea671e7 Backed out 6 changesets (bug 1425450) for hazard failure complaining about nsWrapperCacheInlines CLOSED TREE
Backed out changeset c57ac2e125e8 (bug 1425450)
Backed out changeset 4238c59af7bb (bug 1425450)
Backed out changeset 2a00272e72ba (bug 1425450)
Backed out changeset 3e4a52d596bb (bug 1425450)
Backed out changeset 5da68de67491 (bug 1425450)
Backed out changeset efac091a3ba4 (bug 1425450)
2020-04-06 21:22:51 +03:00
Jon Coppeard 2c04e31b6c Bug 1425450 - Only trace JS holders in collecting zones r=mccr8
Now that we have some per-zone vectors we can skip tracing those for zones that are not being collected.

Differential Revision: https://phabricator.services.mozilla.com/D68523

--HG--
extra : moz-landing-system : lando
2020-04-06 16:14:25 +00:00
Jon Coppeard 368614f774 Bug 1425450 - Use a per-zone vector of JS holders where possible r=mccr8
Currently the JS holders table is represented as a map which contains pointers to entries in a SegmentedVector.  This patch keeps the single map but use a vector per zone and also has a catch-all vector for where we don't know the zone or the holder can have pointers to more than one zone.

Differential Revision: https://phabricator.services.mozilla.com/D68522

--HG--
extra : moz-landing-system : lando
2020-04-06 16:14:03 +00:00
Andrew McCreight 081d4ec773 Bug 1425450 - Pass zone information through when preserving wrappers r=mccr8
This is bascially the same as your original patch.

Differential Revision: https://phabricator.services.mozilla.com/D68520

--HG--
extra : moz-landing-system : lando
2020-04-06 16:13:17 +00:00
Jon Coppeard 89e1fe3de4 Bug 1425450 - Remove unused IsJsHolder methods r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D68519

--HG--
extra : moz-landing-system : lando
2020-04-06 16:12:39 +00:00
Jon Coppeard af4d1860d1 Bug 1425450 - Remove dead JSHolderMap entries lazily when the vector is next iterated r=mccr8
Currently, to remove a holder entry from a vector we swap the entry with the last one in the vector and then shrink the vector (and fix up the map).  With per-zone vectors we won't have a reference to the vector to get the last entry.  One solution would be to store the zone in the entry and look up the vector in a map but I'd like to avoid this if possible because of the space overhead and the extra lookup.

This patch defers clears the entry's pointers when it is removed and actually removes it when the vector is next iterated.

Differential Revision: https://phabricator.services.mozilla.com/D68518

--HG--
extra : moz-landing-system : lando
2020-04-06 16:12:21 +00:00
Andrew McCreight 26736ce413 Bug 1627213 - Don't call HoldJSObjects in a superclass ctor. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D69586

--HG--
extra : moz-landing-system : lando
2020-04-03 16:57:10 +00:00
Jon Coppeard c98e59fc82 Bug 1624810 - Assert that only JS holders with the approprate flag set can contain pointers to GC things in more than one zone r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D68197

--HG--
extra : moz-landing-system : lando
2020-03-26 10:49:20 +00:00
Bas Schouten 1bc21ff19c Bug 1563335 - Part 1: Implement mechanism to throttle JS execution. r=smaug,asuth
Differential Revision: https://phabricator.services.mozilla.com/D59321

--HG--
extra : moz-landing-system : lando
2020-03-26 00:36:24 +00:00
Jon Coppeard 8c62e61474 Bug 1622854 - Switch JSHolderMap to use HashMap r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D67018

--HG--
extra : moz-landing-system : lando
2020-03-18 14:01:22 +00:00
Jon Coppeard 1170608da0 Bug 1622854 - Factor out the JS holder map into a separate class r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D67017

--HG--
extra : moz-landing-system : lando
2020-03-17 19:42:57 +00:00
Andrew McCreight f138cbb009 Bug 1619229, part 3 - Incrementally finalize for most internal GCs. r=smaug
Right now, we sync finalize for a sync GC, even if it is triggered by the JS
engine itself. This can cause issues because the finalizer can run JS, which
can break assumptions made by the JIT.

This patch avoids that by running the finalizers incrementally for most internal
GC triggers. We still run sync for DESTROY_RUNTIME because we're going to shut
down right away.

Differential Revision: https://phabricator.services.mozilla.com/D65649

--HG--
extra : moz-landing-system : lando
2020-03-06 13:23:32 +00:00
Andrew McCreight d8ecfbc863 Bug 1619229, part 1 - Thread GC reason into the GC callback. r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D65647

--HG--
extra : moz-landing-system : lando
2020-03-08 23:22:39 +00:00
Andrew McCreight 4babb2b5ab Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

Differential Revision: https://phabricator.services.mozilla.com/D60197

--HG--
extra : moz-landing-system : lando
2020-02-27 17:39:15 +00:00
Ciure Andrei 00dd87f6f4 Backed out changeset d407a28318e6 (bug 1609815) for causing windows ming bustages CLOSED TREE
--HG--
extra : histedit_source : b2c748e31e0f6ba8fcf9960a336e0bbd361b07e6
2020-02-27 07:05:19 +02:00
Andrew McCreight b197e1f783 Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

Differential Revision: https://phabricator.services.mozilla.com/D60197

--HG--
extra : moz-landing-system : lando
2020-02-27 04:43:48 +00:00
Emilio Cobos Álvarez 256c124f94 Bug 1609996 - Reorder some includes affected by the previous patches. r=froydnj
This was done by:

This was done by applying:

```
diff --git a/python/mozbuild/mozbuild/code-analysis/mach_commands.py b/python/mozbuild/mozbuild/code-analysis/mach_commands.py
index 789affde7bbf..fe33c4c7d4d1 100644
--- a/python/mozbuild/mozbuild/code-analysis/mach_commands.py
+++ b/python/mozbuild/mozbuild/code-analysis/mach_commands.py
@@ -2007,7 +2007,7 @@ class StaticAnalysis(MachCommandBase):
         from subprocess import Popen, PIPE, check_output, CalledProcessError

         diff_process = Popen(self._get_clang_format_diff_command(commit), stdout=PIPE)
-        args = [sys.executable, clang_format_diff, "-p1", "-binary=%s" % clang_format]
+        args = [sys.executable, clang_format_diff, "-p1", "-binary=%s" % clang_format, '-sort-includes']

         if not output_file:
             args.append("-i")
```

Then running `./mach clang-format -c <commit-hash>`

Then undoing that patch.

Then running check_spidermonkey_style.py --fixup

Then running `./mach clang-format`

I had to fix four things:

 * I needed to move <utility> back down in GuardObjects.h because I was hitting
   obscure problems with our system include wrappers like this:

0:03.94 /usr/include/stdlib.h:550:14: error: exception specification in declaration does not match previous declaration
0:03.94 extern void *realloc (void *__ptr, size_t __size)
0:03.94              ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/malloc_decls.h:53:1: note: previous declaration is here
0:03.94 MALLOC_DECL(realloc, void*, void*, size_t)
0:03.94 ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/mozilla/mozalloc.h:22:32: note: expanded from macro 'MALLOC_DECL'
0:03.94     MOZ_MEMORY_API return_type name##_impl(__VA_ARGS__);
0:03.94                                ^
0:03.94 <scratch space>:178:1: note: expanded from here
0:03.94 realloc_impl
0:03.94 ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/mozmemory_wrap.h:142:41: note: expanded from macro 'realloc_impl'
0:03.94 #define realloc_impl mozmem_malloc_impl(realloc)

   Which I really didn't feel like digging into.

 * I had to restore the order of TrustOverrideUtils.h and related files in nss
   because the .inc files depend on TrustOverrideUtils.h being included earlier.

 * I had to add a missing include to RollingNumber.h

 * Also had to partially restore include order in JsepSessionImpl.cpp to avoid
   some -WError issues due to some static inline functions being defined in a
   header but not used in the rest of the compilation unit.

Differential Revision: https://phabricator.services.mozilla.com/D60327

--HG--
extra : moz-landing-system : lando
2020-01-20 16:19:48 +00:00
Emilio Cobos Álvarez aa3a695712 Bug 1609996 - Remove mozilla/Move.h. r=froydnj
rg -l 'mozilla/Move.h' | xargs sed -i 's/#include "mozilla\/Move.h"/#include <utility>/g'

Further manual fixups and cleanups to the include order incoming.

Differential Revision: https://phabricator.services.mozilla.com/D60323

--HG--
extra : moz-landing-system : lando
2020-01-20 16:18:20 +00:00
Olli Pettay 03c717bd41 Bug 1608093 - Remove support for multiple CycleCollectedJSContexts per CycleCollectedJSRuntime, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D59338

--HG--
extra : moz-landing-system : lando
2020-01-09 17:27:10 +00:00
Gabriele Svelto 5dc21d568c Bug 1600545 - Remove useless inclusions of header files generated from IDL files in modules/, netwerk/, parser/, security/, startupcache/, storage/, toolkit/, tools/, uriloader/, widget/, xpcom/ and xpfe/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55444

--HG--
extra : moz-landing-system : lando
2019-12-06 09:17:57 +00:00
Jon Coppeard 902b013ad7 Bug 1592598 - Ensure CC selected zones are scheduled for GC r=sfink,mccr8
The problem is that a GC can be triggered in a number of ways, so scheduling zones in nsJSContext::GarbageCollectNow is not effective. This patch schedules these zones in the GC callback, which is always called at the start of GC. This means we have to change the internal logic slightly to allow the GC callback to schedule addional zones; previously this state was saved and restored before/after running the callback.

Differential Revision: https://phabricator.services.mozilla.com/D51145

--HG--
extra : moz-landing-system : lando
2019-10-30 21:39:07 +00:00
Jon Coppeard e9bd719e91 Bug 1591338 - Add a JS API to call a object's finalizer r=mccr8
This replaces a direct call of an object's finalizer with a more formal API. This adds some assertions and passes a valid FreeOp pointer to the finalizer rather than null.

Differential Revision: https://phabricator.services.mozilla.com/D50571

--HG--
extra : moz-landing-system : lando
2019-10-25 15:33:52 +00:00
Jan de Mooij 7b85f15477 Bug 1590776 - Store the external-string-sizeOf callback with the finalize callback instead of per-runtime. r=jwalden,bzbarsky
This renames the JSStringFinalizer struct to JSExternalStringCallbacks,
makes it a virtual class, and adds a size-of callback to it (to replace
the per-runtime callback).

This will make it possible to implement this callback easily for the
NewExternalString testing function (which we want for bug 1590641)
without having to move this testing function to shell/js.cpp

Differential Revision: https://phabricator.services.mozilla.com/D50234

--HG--
extra : moz-landing-system : lando
2019-10-24 08:49:39 +00:00
Jan de Mooij 6febd292ea Bug 1586683 - Remove flat strings from JSAPI. r=jwalden,bzbarsky
We want to remove flat strings (JSFlatString). With this patch we only expose
linear strings (JSLinearString) to API consumers.

This is very mechanical for the most part, because code typically only cares
about linear strings and not the null-termination aspect.

CTypes's Library.cpp has some Windows-specific code where we relied on null-terminated
strings. This patch adds JS_CopyStringCharsZ for that use case.

Differential Revision: https://phabricator.services.mozilla.com/D48314

--HG--
extra : moz-landing-system : lando
2019-10-14 09:32:07 +00:00
Jon Coppeard 58e4c9be34 Bug 1587378 - Remove TraceCallbacks method that takes raw JSObject pointers r=mccr8
This method turned out to only be used for tracing wrapper cached things. The wrapper cache has its own way of implementing barriers and contains a raw JSObject pointer. Changing this trace method to take an nsWrapperCache pointer (effectively a JSObjct**) enforces correct use of Heap<T> for other TraceCallbacks callers.

Differential Revision: https://phabricator.services.mozilla.com/D48693

--HG--
extra : moz-landing-system : lando
2019-10-09 14:34:16 +00:00
Steve Fink feb7552f85 Bug 1560667 - Annotate more callers. r=jonco
This includes some annotations to isOverridableField() that are only necessary at this point in the patch stack; the entire function will be removed shortly.

Differential Revision: https://phabricator.services.mozilla.com/D46565

--HG--
extra : moz-landing-system : lando
2019-10-02 03:19:58 +00:00
Steve Fink 91b1ffaac3 Bug 1560667 - Collection of fixes for things uncovered by improvements to the hazard analysis. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D46534

--HG--
extra : moz-landing-system : lando
2019-10-02 03:20:33 +00:00
Gerald Squelart 95f77c2409 Bug 1576819 - Use PROFILER_ADD_MARKER{,_WITH_PAYLOAD} everywhere - r=gregtatum
All calls to `profiler_add_marker()` (outside of the profilers code) are
now replaced by either:
- `PROFILER_ADD_MARKER(name, categoryPair)`
- `PROFILER_ADD_MARKER_WITH_PAYLOAD(name, categoryPair, TypeOfMarkerPayload,
                                    (payload, ..., arguments))`

This makes all calls consistent, and they won't need to prefix the category pair
with `JS::ProfilingCategoryPair::`.

Also it will make it easier to add (and later remove) internal-profiling
instrumentation (bug 1576550), and to replace heap-allocated payloads with
stack-allocated ones (bug 1576555).

Differential Revision: https://phabricator.services.mozilla.com/D43588

--HG--
extra : moz-landing-system : lando
2019-09-04 07:56:51 +00:00
Brian Hackett 091f2992d2 Bug 1573938 - Never collect wrapper JSObjects when recording/replaying, r=mccr8.
Differential Revision: https://phabricator.services.mozilla.com/D42011

--HG--
extra : moz-landing-system : lando
2019-08-16 20:51:12 +00:00
Jon Coppeard c772fc6cda Bug 1573844 - Remove external references to js::Class r=mccr8
Depends on D41985

Differential Revision: https://phabricator.services.mozilla.com/D41986

--HG--
extra : moz-landing-system : lando
2019-08-14 17:15:15 +00:00
Jon Coppeard 6d38179350 Bug 1573844 - Remove external references to js::Jsvalify and js::Valueify r=mccr8
These are now no-ops so can be removed.

Depends on D41983

Differential Revision: https://phabricator.services.mozilla.com/D41984

--HG--
extra : moz-landing-system : lando
2019-08-14 17:24:59 +00:00
Jon Coppeard 8b73371be0 Bug 1407593 - Report embedding leaks of JS GC things r=sfink,sfink?
Patch to report JS GC things that are live at shutdown as leaks by calling MOZ_LOG_CTOR for them. The JS engine now clears any remaining roots to prevent dangling pointers to freed memory after shutdown. I made XPCJSRuntime::Shutdown keep the weak pointer update callbacks as sometimes these tables have entries remaining at shutdown (if there are leaks) and we need the callbacks to update them.

This is looking more green on try now.

Differential Revision: https://phabricator.services.mozilla.com/D40449

--HG--
extra : moz-landing-system : lando
2019-08-13 08:31:49 +00:00
Yoshi Cheng-Hao Huang e17d60cbf4 Bug 1551810 - Part 1: return bool in CallbackTracer methods. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D38980

--HG--
extra : moz-landing-system : lando
2019-07-26 08:59:38 +00:00
Sylvestre Ledru d57d4905f1 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D30883

--HG--
extra : moz-landing-system : lando
2019-05-25 17:46:15 +00:00
arthur.iakab af8e458c5f Backed out changeset a296439a25ff (bug 1519636) for frequent Windows cppunit failures CLOSED TREE 2019-05-24 14:26:01 +03:00
Sylvestre Ledru c82ea97226 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D30883

--HG--
extra : moz-landing-system : lando
2019-05-24 09:59:17 +00:00
Haik Aftandilian 45bb7b8823 Bug 1546544 - Enable TCSM r=asuth,spohl,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D29046

--HG--
extra : moz-landing-system : lando
2019-05-07 22:16:14 +00:00
arthur.iakab 62df572c1c Backed out 2 changesets (bug 1546544) for causing mochitest-chrome test failures on automation.py CLOSED TREE
Backed out changeset d4b67960c0f9 (bug 1546544)
Backed out changeset fda45db5f8e9 (bug 1546544)
2019-05-07 05:38:37 +03:00
Haik Aftandilian cd1c25bb79 Bug 1546544 - Enable TCSM r=asuth,spohl,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D29046

--HG--
extra : moz-landing-system : lando
2019-05-06 06:09:10 +00:00
Boris Zbarsky ff72e84ac1 Bug 1547923 part 4. Add nsIGlobalObject::HasJSGlobal(). r=mccr8
Consumers that just care about this boolean state should use this instead of
getting the JSObject* directly.

Differential Revision: https://phabricator.services.mozilla.com/D29705

--HG--
extra : moz-landing-system : lando
2019-05-02 21:32:17 +00:00
Andrew McCreight 327d0da02c Bug 1463569 - Add a way to log the sizes of GC things to GC logs. r=sfink
If the environment variable MOZ_GC_LOG_SIZE is set, then GC logs will
include some extra data that indicates how much memory the GC thing
uses, including extra data hanging off of it. This can be used
calculate finer grained information about the memory usage of scripts.

Differential Revision: https://phabricator.services.mozilla.com/D25882

--HG--
extra : moz-landing-system : lando
2019-04-07 13:35:44 +00:00
Jeff Walden 5327fe7f3e Bug 1542120 - Add js/public/Warnings.h for warning-related JSAPI. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D26273

--HG--
rename : js/src/jsapi.h => js/public/Warnings.h
extra : moz-landing-system : lando
2019-04-05 22:52:04 +00:00
Gurzau Raul 6b94d177d1 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-03-01 09:28:28 +02:00
Peter Van der Beken f13ee34fd0 Bug 1518202 - Make RemoteObjectProxies add the edge to the native object to the CC. r=bzbarsky
Depends on D15848

Differential Revision: https://phabricator.services.mozilla.com/D21497

--HG--
extra : moz-landing-system : lando
2019-02-28 19:34:02 +00:00
Ryan Hunt f4a515c179 Bug 1523969 part 27 - Move method definition inline comments to new line in 'xpcom/'. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D21131

--HG--
extra : rebase_source : 514f36238d908de221a0116f8e8a5d0cf18a168c
extra : histedit_source : 85743d2586a7307738866ce145b93dae2a664cf3
2019-02-25 16:14:01 -06:00
Markus Stange 0b151b8c2b Bug 1500692 - Centralize profiling category definition and add infrastructure for subcategories. r=njn
The actual subcategories will be added in later patches, so that there are no
unused categories.

Differential Revision: https://phabricator.services.mozilla.com/D11334

--HG--
extra : moz-landing-system : lando
2019-02-16 17:37:43 +00:00
Randell Jesup 76bd9e73cc Bug 1522150: Add a DeferredTimers queue ahead of the normal Idle EventQueue r=froyd
* * *
Bug 1522150: Rename NS_IdleDispatch* functions since they take queue identifiers r=froyd
2019-01-26 12:18:05 -05:00
Jon Coppeard a96229ddb3 Bug 1512749 - Convert JS::gcreason::Reason to enum class JS:GCReason r=jonco r=mccr8 2019-01-21 13:09:12 +00:00
Cosmin Sabou 7ccc9d8b0b Merge mozilla-inbound to mozilla-central. a=merge 2019-01-19 11:57:49 +02:00
Greg Tatum 7042c8f1c3 Bug 1520526 - Add categories to all profiler markers; r=mstange
This commit adds categories to all markers. This way the profiler's
marker categories and frame label categories agree. There are a few
duplicate category properties on some of the marker payloads, but
this could be cleaned up in a follow-up if needed.

Differential Revision: https://phabricator.services.mozilla.com/D16864

--HG--
extra : moz-landing-system : lando
2019-01-18 15:40:15 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Paul Bone 793ed8be23 Bug 1520357 - Rename the JSON formatting entry points r=jonco
I'm always forgetting which code path is which.  So give both these
functions clearer names that say if they're used by profiling or telemetry.

--HG--
extra : rebase_source : 8edcabba510bcf7170b7e071f7cb3a21be23b0e4
2019-01-17 14:08:30 +11:00
Jon Coppeard 20a91427ef Bug 1342012 - Support script and module private values which contain pointers to cycle-collected C++ objects r=jandem 2018-12-06 16:52:15 -05:00
Sylvestre Ledru cccdda3c2a Bug 1516555 - Reformat everything to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D15426

--HG--
extra : moz-landing-system : lando
2018-12-28 15:48:06 +00:00
Steve Fink 10953d54c2 Bug 1513108 - Remove the separate class extension hook for getting a weakmap key delegate, r=jonco
Replace with just unwrapping the key, since there are no users that return anything else for a delegate.

--HG--
extra : rebase_source : e72b825121ca3493364c9347f65e5dddd1ef53e0
2018-12-07 14:38:01 -08:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Gerald Squelart 1bd6a1fd4e Bug 1435091 - p4. Use profiler_thread_is_being_profiled() instead of profiler_is_active() around profiler_add_marker()s - r=mstange
(Unless there were other profiler actions, as I'm not sure yet whether it would
be safe to skip them when the profiler is paused; another bug should
investigate that.)

Differential Revision: https://phabricator.services.mozilla.com/D11308

--HG--
extra : moz-landing-system : lando
2018-11-19 06:29:15 +00:00
Yoshi Huang f2e1d9efb3 Bug 1478533 - Add a static_assert for WeakMap. r=jonco, mccr8
If an object is used as a WeakMap key, its TraceKind should be added
into CC graph, so adding a static_assert to make sure this.
2018-11-16 10:58:34 +01:00
André Bargull 25471aeefb Bug 1464475: Use HandleValue for the ErrorInterceptor API. r=sfink
--HG--
extra : rebase_source : 80419328a515a921498383b126904c17287ea85c
2018-10-26 10:38:30 -07:00
André Bargull 38691a7464 Bug 1485066 - Part 11: Remove the unused |inBuf| argument from JS::FormatStackDump and change it to use Sprinter. r=Waldo 2018-09-05 03:01:23 -07:00
Cosmin Sabou 1f0a42def4 Backed out 14 changesets (bug 1485066) for build bustages on MessageManagerFuzzer. CLOSED TREE
Backed out changeset e40f67f15bf1 (bug 1485066)
Backed out changeset f09bc4d5fdcc (bug 1485066)
Backed out changeset 939e27aa2d59 (bug 1485066)
Backed out changeset d50fcf82556c (bug 1485066)
Backed out changeset 5cbc0ae0117a (bug 1485066)
Backed out changeset 09b5382e0baf (bug 1485066)
Backed out changeset 6676e8fedcb3 (bug 1485066)
Backed out changeset 28e7e61c11ec (bug 1485066)
Backed out changeset b08b0cfc1dbe (bug 1485066)
Backed out changeset 8defc9eabfac (bug 1485066)
Backed out changeset bf167b0a3af3 (bug 1485066)
Backed out changeset 4f89260d5e30 (bug 1485066)
Backed out changeset c22fc17c9d87 (bug 1485066)
Backed out changeset d35bb63dbc1d (bug 1485066)
2018-09-05 15:54:03 +03:00
André Bargull ceccb59fda Bug 1485066 - Part 11: Remove the unused |inBuf| argument from JS::FormatStackDump and change it to use Sprinter. r=Waldo 2018-09-05 03:01:23 -07:00
Luke Wagner 109280bf02 Bug 1330661 - Baldr: make the BuildIdOp a process global (r=lth,mccr8)
--HG--
extra : rebase_source : 0388505583fb0b445f989e3a8b97ec861ed62499
2018-09-04 14:25:57 -05:00
Brian Hackett cfe3b9a606 Bug 1486616 - Execute record/replay triggers when finalizing deferred things, r=mccr8.
--HG--
extra : rebase_source : 1b3091755ceaa78836e6fd40cb3af4ceedbebdbe
2018-08-31 05:35:36 -10:00
Henri Sivonen 3edc601325 Bug 1402247 - Use encoding_rs for XPCOM string encoding conversions. r=Nika,erahm,froydnj.
Correctness improvements:

 * UTF errors are handled safely per spec instead of dangerously truncating
   strings.

 * There are fewer converter implementations.

Performance improvements:

 * The old code did exact buffer length math, which meant doing UTF math twice
   on each input string (once for length calculation and another time for
   conversion). Exact length math is more complicated when handling errors
   properly, which the old code didn't do. The new code does UTF math on the
   string content only once (when converting) but risks allocating more than
   once. There are heuristics in place to lower the probability of
   reallocation in cases where the double math avoidance isn't enough of a
   saving to absorb an allocation and memcpy.

 * Previously, in UTF-16 <-> UTF-8 conversions, an ASCII prefix was optimized
   but a single non-ASCII code point pessimized the rest of the string. The
   new code tries to get back on the fast ASCII path.

 * UTF-16 to Latin1 conversion guarantees less about handling of out-of-range
   input to eliminate an operation from the inner loop on x86/x86_64.

 * When assigning to a pre-existing string, the new code tries to reuse the
   old buffer instead of first releasing the old buffer and then allocating a
   new one.

 * When reallocating from the new code, the memcpy covers only the data that
   is part of the logical length of the old string instead of memcpying the
   whole capacity. (For old callers old excess memcpy behavior is preserved
   due to bogus callers. See bug 1472113.)

 * UTF-8 strings in XPConnect that are in the Latin1 range are passed to
   SpiderMonkey as Latin1.

New features:

 * Conversion between UTF-8 and Latin1 is added in order to enable faster
   future interop between Rust code (or otherwise UTF-8-using code) and text
   node and SpiderMonkey code that uses Latin1.

MozReview-Commit-ID: JaJuExfILM9
2018-08-14 14:43:42 +03:00
Gabriele Svelto 15adf94f4d Bug 1348273 - Convert crash annotations into a machine-readable list of constants; r=ted.mielczarek,njn,dholbert,mak,cpearce,mcmanus,froydnj,Dexter,jrmuizel,jchen,jimm,bz,surkov
This introduces the machinery needed to generate crash annotations from a YAML
file. The relevant C++ functions are updated to take a typed enum. JavaScript
calls are unaffected but they will throw if the string argument does not
correspond to one of the known entries in the C++ enum. The existing whitelists
and blacklists of annotations are also generated from the YAML file and all
duplicate code related to them has been consolidated. Once written out to the
.extra file the annotations are converted in string form and are no different
than the existing ones.

All existing annotations have been included in the list (and some obsolete ones
have been removed) and all call sites have been updated including tests where
appropriate.

--HG--
extra : source : 4f6c43f2830701ec5552e08e3f1b06fe6d045860
2018-07-05 15:42:11 +02:00
Brian Hackett 51e310f29a Bug 1479547 Part 1 - Remove instrumentation related to non-deterministic GCs, r=mccr8.
--HG--
extra : rebase_source : 6dfc65ab83e770da6e1f64003379156c3b863050
2018-07-31 19:34:50 +00:00
Brian Hackett 4bd59c423f Bug 1479339 - Disable the cycle collector when recording/replaying, r=mccr8.
--HG--
extra : rebase_source : e317c64bdf8083a19bed25379ee937e348ace294
2018-07-30 15:48:17 +00:00
Brian Hackett 52b33afe4e Bug 1207696 Part 7 - Ensure deterministic interaction of GC with CC and object references, r=smaug.
--HG--
extra : rebase_source : 5d9e7ebd1dc242ca648193ed1f27ae91d19006de
2018-07-23 14:46:37 +00:00
Brian Hackett da3fee20ba Bug 1207696 Part 5j - Don't add GC events to timelines when recording or replaying, r=mccr8.
--HG--
extra : rebase_source : 1c600ce8918a3b343864c8a3606a4de5d25b87f6
2018-07-23 14:38:49 +00:00
Brian Hackett 049bcdf766 Bug 1207696 Part 5a - Disable incremental GC when recording or replaying, r=mccr8.
--HG--
extra : rebase_source : a98389408b8aecd95323a7f56f2e286f7f6ce43d
2018-07-23 14:35:17 +00:00
Jan de Mooij c542e6498e Bug 1474522 - Change PrepareScriptEnvironmentAndInvoke to always take a global object instead of an arbitrary scope. r=bholley
js-ctypse now passes the context's current global instead of the closure function it's calling.
2018-07-11 11:44:52 +02:00
Nathan Froyd 713a85aa66 Bug 1471614 - remove some dead code in CycleCollectedJSRuntime; r=mccr8
Not only is it dead code, but it's a significant amount of useless work!
2018-06-27 18:03:10 +02:00
Dorel Luca f7aa7c9447 Backed out changeset 0ca9cade7725 (bug 1471614) for XPCshell failures on devtools/shared/tests/unit/test_css-properties-db.js 2018-06-27 18:42:30 +03:00
Nathan Froyd 1185b20068 Bug 1471614 - remove some dead code in CycleCollectedJSRuntime; r=mccr8
Not only is it dead code, but it's a significant amount of useless work!
2018-06-27 11:10:31 -04:00
Csoregi Natalia 2f779be8d9 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-06-02 01:03:45 +03:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Markus Stange d237156fdc Bug 1464909 - Add the "GC / CC" category to IncrementalFinalizeRunnable::Run. r=smaug
MozReview-Commit-ID: nRSVnJVNTj

--HG--
extra : rebase_source : ce22abc0fcbc11dab5eb2cf1b487a75424b8bab1
2018-05-31 14:08:50 -04:00
Noemi Erli 7bfa96a42b Backed out 4 changesets (bug 1464909) for failures in devtools/client/performance/test/unit/test_tree-model-08.js r=mstange on a CLOSED TREE
Backed out changeset 119c2055e002 (bug 1464909)
Backed out changeset 562aeeced55b (bug 1464909)
Backed out changeset c1e1d74ad27e (bug 1464909)
Backed out changeset 11670c51f572 (bug 1464909)
2018-06-01 01:23:49 +03:00
Markus Stange 082d09bf5b Bug 1464909 - Add the "GC / CC" category to IncrementalFinalizeRunnable::Run. r=smaug
MozReview-Commit-ID: nRSVnJVNTj

--HG--
extra : rebase_source : c20bc5a2acea854849ee5bcefd40c14d966d0c02
2018-05-31 14:08:50 -04:00
Steve Fink 0680fed494 Bug 1464266 - Rename GCForReason to NonIncrementalGC, r=jonco
--HG--
extra : topic : GCForReason
extra : rebase_source : e81bf7bb8ca0824f8b63f25a46ccbe26c4002325
2018-05-24 16:19:18 -07:00
Andrew McCreight 6c4a1d23f2 Bug 1460636 - Don't trace jsids on ObjectGroup in the cycle collector. r=jonco,sfink
For some reason, the CC spends a lot of time tracing jsids on
ObjectGroups when an addon is installed. This patch avoids that by
adding a canSkipJsids flag to JSTracer, and using it in
ObjectGroup::traceChildren. If this is true, then the tracer is free
to not report every jsid. This flag is set to true for the two CC
tracers.

MozReview-Commit-ID: CWFqQEr0SxV

--HG--
extra : rebase_source : cc31c22717f8990166454db191e0d40c145e09f0
2018-05-11 11:38:58 -07:00
Sebastian Hengst 0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tristan Bourvon a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Steve Fink e0f4a04fd4 Bug 1447391 - Early return for strings and symbols when tracing for CC, r=mccr8
--HG--
extra : rebase_source : f4512c0ab8d7aac3f274d38b96594eb65fb149dd
2018-03-20 10:54:29 -07:00
Jason Orendorff e7c94fff59 Bug 1439063 - Part 1: Move several public headers from js/src to js/public. r=jandem.
js/src/jsalloc.h -> js/public/AllocPolicy.h
jsalloc.cpp -> js/src/util/AllocPolicy.cpp
jsbytecode.h -> merge into js/public/TypeDecls.h
jsprf.h -> js/public/Printf.h
jsprf.cpp -> js/src/util/Printf.cpp
jsprototypes.h -> public/ProtoKey.h
jswrapper.h -> js/Wrapper.h

--HG--
rename : js/src/jsalloc.h => js/public/AllocPolicy.h
rename : js/src/jsprf.h => js/public/Printf.h
rename : js/src/jsprototypes.h => js/public/ProtoKey.h
rename : js/src/jswrapper.h => js/public/Wrapper.h
rename : js/src/jsalloc.cpp => js/src/util/AllocPolicy.cpp
rename : js/src/jsprf.cpp => js/src/util/Printf.cpp
extra : rebase_source : 98b16d94c469202eab0303a8da844f1d0b6aa809
extra : amend_source : e0b16c1077226d6fe240f4d7096537f93b43f2b8
extra : histedit_source : d94e0ba7904a7d66742c7fac43f638aaec4fa4e5
2018-02-21 10:30:19 -06:00
David Teller e5c2a5003e Bug 1409852 - Expose an API in ChromeUtils to detect chrome JS dev errors;r=bz
MozReview-Commit-ID: GluMLeQOHTZ

--HG--
extra : rebase_source : 37516c3b76a9eb7821ba66ee46ba3c5c0f659e2e
2017-11-16 10:48:45 +01:00
Csoregi Natalia 9743e10556 Backed out 3 changesets (bug 1409852) for build bustage and failing test_js_dev_error_interceptor.js. r=backout on a CLOSED TREE
Backed out changeset 06368bf1a32c (bug 1409852)
Backed out changeset 46fce9a2622d (bug 1409852)
Backed out changeset 649d7bdf80ad (bug 1409852)
2017-12-21 15:31:27 +02:00