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

264 Коммитов

Автор SHA1 Сообщение Дата
Jon Coppeard d1664d884b Bug 1589717 - Simplify GCVector::sweep and allow use with element types that don't have barriers r=sfink
We can simplify this method by using std::remove_if, which does the shifting down of removed elements for us. We just need to make sure all our wrapper classes support moving assignment.

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

--HG--
extra : moz-landing-system : lando
2019-10-22 04:58:53 +00:00
Jon Coppeard ad4df9ae33 Bug 1581574 - Remove Heap<T> write barrier and rely on existing read barrier to make incremental marking work r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D46133

--HG--
extra : moz-landing-system : lando
2019-09-20 10:09:19 +00:00
Boris Zbarsky 0809eb5853 Bug 1561887 part 1. Add an overload of JS::ObjectIsMarkedGray that works on TenuredHeap. r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D36868

--HG--
extra : moz-landing-system : lando
2019-07-08 22:52:51 +00:00
Karl Tomlinson c606cdd6d0 Bug 1558131 permit PersistentRooted::init() with RootingContext r=sfink
https://hg.mozilla.org/mozilla-central/rev/79d18ff4fe2853abadab372bc3bc00872f52403e#l1.143
added support for PersistentRooted initialization from a RootingContext.
https://hg.mozilla.org/mozilla-central/rev/d2758f635f72f779f712bf9c6e838868ed53c9f7#l5.97
changed the init() methods to require JSContext but continued to support
RootingContext for constructors.

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

--HG--
extra : moz-landing-system : lando
2019-06-11 00:41:32 +00:00
Steve Fink 995829d42a No bug. Reformat js/** to fix accumulated divergences.
# ignore-this-changeset

--HG--
extra : amend_source : 7b51d539061710bf4939e687b4ca4b74af757cf3
2019-05-24 11:57:18 -07:00
Steve Fink 8484af2fa6 Bug 1547782 - Implement GCPolicy<T>::isValid for Gecko specializations r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D29302

--HG--
extra : moz-landing-system : lando
2019-04-30 21:48:32 +00:00
Steve Fink 2bda356e27 Bug 1538779 - Make `Rooted<MyContainer> c(cx)` the equivalent of `Rooted<MyContainer> c(cx, MyContainer(cx))` if possible r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D26797

--HG--
extra : moz-landing-system : lando
2019-04-30 21:25:15 +00:00
Brindusan Cristian 318a177f68 Backed out changeset f2a3fb166dfb (bug 1538779) for nojit build bustages at backup-point-bug1315634.js. CLOSED TREE 2019-04-29 21:27:59 +03:00
Steve Fink c8c09edba2 Bug 1538779 - Make `Rooted<MyContainer> c(cx)` the equivalent of `Rooted<MyContainer> c(cx, MyContainer(cx))` if possible r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D26797

--HG--
extra : moz-landing-system : lando
2019-04-29 17:38:14 +00:00
Cosmin Sabou 889d5aa9e6 Backed out changeset d6f935d90da4 (bug 1538779) for causing build bustages on RootingAPI.h CLOSED TREE 2019-04-26 21:27:29 +03:00
Steve Fink 5a33bd5976 Bug 1538779 - Make `Rooted<MyContainer> c(cx)` the equivalent of `Rooted<MyContainer> c(cx, MyContainer(cx))` if possible r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D26797

--HG--
extra : moz-landing-system : lando
2019-04-26 16:54:43 +00:00
Jon Coppeard 7b5f8dce00 Bug 1539570 - Improve documentation of our various barrier classes r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D25367
2019-03-29 11:08:16 +00:00
Jon Coppeard e16c189b22 Bug 1306008 - Replace ObjectPtr with JS::Heap<JSObject*> r=sfink
Heap<JSObject*> is now equivalent to ObjectPtr so we can remove the latter.

Differential Revision: https://phabricator.services.mozilla.com/D25084
2019-03-27 16:26:22 +00:00
Jon Coppeard b425876903 Bug 1306008 - Give JS::Heap<T> pointer wrappers a pre-barrier r=sfink
This adds a pre write barrier to Heap<T> so that these can be uses as non-roots in the heap without breaking our snapshot at the beginning invariant if they are written to during an incremental GC. This makes it harder to misuse and allows us to take out manual barriers in at least one place.

Differential Revision: https://phabricator.services.mozilla.com/D25083
2019-03-27 16:26:09 +00:00
Tooru Fujisawa c92d5c4af5 Bug 1534516 - Use correct AutoGCRooter::Tag in BinASTParserBase. r=Yoric
Differential Revision: https://phabricator.services.mozilla.com/D23083

--HG--
extra : moz-landing-system : lando
2019-03-12 09:16:00 +00:00
Jon Coppeard e56208cb40 Bug 1463462 - Delay gray marking assertions when we are doing incremental gray marking r=sfink 2018-12-06 16:28:14 -05:00
Jon Coppeard 6f81506124 Bug 1463462 - Make gray marking assertions call a JSAPI function r=sfink 2018-12-06 16:28:10 -05:00
Tooru Fujisawa 7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Benjamin Bouvier a7f1d173a0 Bug 1511383: Update vim modelines after clang-format; r=sylvestre
- modify line wrap up to 80 chars; (tw=80)
- modify size of tab to 2 chars everywhere; (sts=2, sw=2)

--HG--
extra : rebase_source : 7eedce0311b340c9a5a1265dc42d3121cc0f32a0
extra : amend_source : 9cb4ffdd5005f5c4c14172390dd00b04b2066cd7
2018-11-30 16:39:55 +01: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
Jan de Mooij bccfe7c569 Bug 1508065 - Change JS_PUBLIC_{API,DATA} and JS_FRIEND_{API,DATA} to be more like similar macros to avoid confusing clang-format. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D12256

--HG--
extra : moz-landing-system : lando
2018-11-19 17:02:47 +00:00
Markus Stange 3be6c8467b Bug 1499507 - Fold the 'profiler is active' check into the 'JSContext has a non-null PseudoStack' check. r=sfink
This eliminates a few instructions from every profiler label and saves code size.
We have around 9000 WebIDL constructors + methods + getters + setters which all
have an inlined instance of this code.

This change reduces the binary size on Linux x64 by around 160KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build:

    movq       %rsp, %rbp
    pushq      %r15
    pushq      %r14
    pushq      %r12
    pushq      %rbx
    subq       $0x10, %rsp
    movq       %rcx, %r14
    movq       %rdx, %r15
-   movq       __ZN7mozilla8profiler6detail12RacyFeatures18sActiveAndFeaturesE@GOT, %rax ; __ZN7mozilla8profiler6detail12RacyFeatures18sActiveAndFeaturesE@GOT
-   movl       (%rax), %eax
-   testl      %eax, %eax
-   js         loc_xxxxx
-
-   movq       $0x0, -40(%rbp)
-   jmp        loc_xxxxx
-
-   movq       0x78(%rdi), %rbx
+   movq       0x80(%rdi), %rbx
    movq       %rbx, -40(%rbp)
    testq      %rbx, %rbx
    je         loc_xxxxx

    movl       0x10(%rbx), %r12d
    cmpl       %r12d, (%rbx)
    jbe        loc_xxxxx

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

--HG--
extra : moz-landing-system : lando
2018-11-06 04:29:35 +00:00
Brindusan Cristian ab89743379 Backed out 9 changesets (bug 1499507) for build bustages on /profiler/core/platform.cpp. CLOSED TREE
Backed out changeset 4c79a5557d7b (bug 1499507)
Backed out changeset 35d05a53e0a9 (bug 1499507)
Backed out changeset 9254e6c721b3 (bug 1499507)
Backed out changeset cf40b044af3f (bug 1499507)
Backed out changeset 76dd85b9aaf7 (bug 1499507)
Backed out changeset 6256446f16c4 (bug 1499507)
Backed out changeset 41cede6bc7d2 (bug 1499507)
Backed out changeset 30476b824eb4 (bug 1499507)
Backed out changeset 24a9494155fe (bug 1499507)
2018-11-05 23:24:49 +02:00
Markus Stange 67e1a749b2 Bug 1499507 - Fold the 'profiler is active' check into the 'JSContext has a non-null PseudoStack' check. r=sfink
This eliminates a few instructions from every profiler label and saves code size.
We have around 9000 WebIDL constructors + methods + getters + setters which all
have an inlined instance of this code.

This change reduces the binary size on Linux x64 by around 160KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build:

    movq       %rsp, %rbp
    pushq      %r15
    pushq      %r14
    pushq      %r12
    pushq      %rbx
    subq       $0x10, %rsp
    movq       %rcx, %r14
    movq       %rdx, %r15
-   movq       __ZN7mozilla8profiler6detail12RacyFeatures18sActiveAndFeaturesE@GOT, %rax ; __ZN7mozilla8profiler6detail12RacyFeatures18sActiveAndFeaturesE@GOT
-   movl       (%rax), %eax
-   testl      %eax, %eax
-   js         loc_xxxxx
-
-   movq       $0x0, -40(%rbp)
-   jmp        loc_xxxxx
-
-   movq       0x78(%rdi), %rbx
+   movq       0x80(%rdi), %rbx
    movq       %rbx, -40(%rbp)
    testq      %rbx, %rbx
    je         loc_xxxxx

    movl       0x10(%rbx), %r12d
    cmpl       %r12d, (%rbx)
    jbe        loc_xxxxx

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

--HG--
extra : moz-landing-system : lando
2018-11-05 20:53:58 +00:00
Narcis Beleuzu 2c6edfdde8 Backed out 9 changesets (bug 1499507) for bustages on ProfileBuffer.cpp . CLOSED TREE
Backed out changeset 541186291b88 (bug 1499507)
Backed out changeset 8a3f4acbad3b (bug 1499507)
Backed out changeset f427afc392b0 (bug 1499507)
Backed out changeset 58dc19fb2b76 (bug 1499507)
Backed out changeset 9225e9aea377 (bug 1499507)
Backed out changeset ca23a517da63 (bug 1499507)
Backed out changeset 16d6c90333de (bug 1499507)
Backed out changeset bc134fe1722a (bug 1499507)
Backed out changeset 4a9c9a91182c (bug 1499507)
2018-11-05 21:48:11 +02:00
Markus Stange 932098227f Bug 1499507 - Fold the 'profiler is active' check into the 'JSContext has a non-null PseudoStack' check. r=sfink
This eliminates a few instructions from every profiler label and saves code size.
We have around 9000 WebIDL constructors + methods + getters + setters which all
have an inlined instance of this code.

This change reduces the binary size on Linux x64 by around 160KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build:

    movq       %rsp, %rbp
    pushq      %r15
    pushq      %r14
    pushq      %r12
    pushq      %rbx
    subq       $0x10, %rsp
    movq       %rcx, %r14
    movq       %rdx, %r15
-   movq       __ZN7mozilla8profiler6detail12RacyFeatures18sActiveAndFeaturesE@GOT, %rax ; __ZN7mozilla8profiler6detail12RacyFeatures18sActiveAndFeaturesE@GOT
-   movl       (%rax), %eax
-   testl      %eax, %eax
-   js         loc_xxxxx
-
-   movq       $0x0, -40(%rbp)
-   jmp        loc_xxxxx
-
-   movq       0x78(%rdi), %rbx
+   movq       0x80(%rdi), %rbx
    movq       %rbx, -40(%rbp)
    testq      %rbx, %rbx
    je         loc_xxxxx

    movl       0x10(%rbx), %r12d
    cmpl       %r12d, (%rbx)
    jbe        loc_xxxxx

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

--HG--
extra : moz-landing-system : lando
2018-11-05 19:06:08 +00:00
Jan de Mooij ab644b087f Bug 1488698 - Always use braces for if/for/while statements in js/public. r=jandem
--HG--
extra : rebase_source : 075f0747c9256fee67925853b501b7a3549cebba
2018-09-06 12:11:07 +02:00
Steve Fink b0006a2c76 Bug 1479962 - Add JS_HAZ_ROOTED_BASE for AutoGCRooter, which assumes all descendants are rooted, r=jonco
--HG--
extra : topic : hazard
extra : rebase_source : a75561cdf2f71e34a630737dcf832d05d95974b0
2018-07-24 16:52:43 -07:00
Nicholas Nethercote b85493f609 Bug 1477626 - Move js::Hash{Set,Map} into MFBT. r=Waldo
The main change is that the patch copies js/public/HashTable.h to
mfbt/HashTable.h, and then changes it as follows.

- Changes `js` namespaces to `mozilla` (and removes some now-unnecessary
  `mozilla::` qualifiers).

- Changes the default AllocPolicy from the SpiderMonkey-specific
  `TempAllocPolicy` to the generic `MallocAllocPolicy`.

- Adds `#include "AllocPolicy.h"` (like mfbt/Vector.h).

- Changes `JS_DEBUG` use to `DEBUG`.

- Minor comment updates, as necessary.

js/public/HashTable.h is now tiny, holding just a few renamings of things from
the `mozilla` namespace into the `js` namespace to minimize churn elsewhere.
(Those renamings keep `TempAllocPolicy` as the default AllocPolicy for
js::Hash{Set,Map}.)

Also, various template specializations had to be moved from the `js` namespace
to the `mozilla` namespace to avoid compile errors.

MozReview-Commit-ID: GS9Qn9YeYDA

--HG--
rename : js/public/HashTable.h => mfbt/HashTable.h
2018-07-26 20:15:49 +10:00
Ted Campbell ab67c3fb81 Bug 1471272 - Add [SMDOC] tags for in-source documentation. r=jandem,nbp
MozReview-Commit-ID: I038aYgvwe4
2018-06-28 15:23:25 -04:00
Jan de Mooij f7fb3be6ec Bug 1466121 part 1 - Rename JSCompartment to JS::Compartment. r=luke
--HG--
extra : rebase_source : cd7140ecda54f0caa02a96f562167b3c9a107450
2018-06-07 16:44:40 +02:00
Jan de Mooij 156284156a Bug 1363214 - Remove JS::Realm/JSCompartment inheritance. r=jonco
--HG--
extra : rebase_source : ad63de7c6676532640659d1fccced7f83798e06d
2018-06-06 14:30:52 +02:00
Emilio Cobos Álvarez 1e9c395548 Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj
Same approach as the other bug, mostly replacing automatically by removing
'using mozilla::Forward;' and then:

  s/mozilla::Forward/std::forward/
  s/Forward</std::forward</

The only file that required manual fixup was TestTreeTraversal.cpp, which had
a class called TestNodeForward with template parameters :)

MozReview-Commit-ID: A88qFG5AccP
2018-06-02 09:33:26 +02: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
Jan de Mooij 09c4068fa0 Bug 1464134 part 1 - Fix various places to use Realm instead of JSCompartment. r=luke 2018-05-31 11:28:48 +02:00
Philip Chimento fb2e0702aa Bug 1464912 - Add exposeToActiveJS specialization for JSString. r=sfink 2018-05-28 14:47:33 -07:00
Jon Coppeard d3bd086af9 Bug 1460341 - Replace GCPolicy<T>::initial() with SafelyInitialized<T>() r=Waldo 2018-05-25 10:01:25 +01:00
Jan de Mooij 969bbf2190 Bug 1461938 part 1 - Store JS::Realm* instead of JSCompartment* in JSContext. r=luke
--HG--
extra : rebase_source : 7af7e5854bdbe0d750a13e0e8c70a71c2c5f88c3
2018-05-17 18:02:40 +02:00
André Bargull 4782ef15d6 Bug 1461928 - Part 2: Add length member to AutoArrayRooter and change AutoGCRooter's tag to an enum class. r=jonco
--HG--
extra : histedit_source : 5e1137c64bc3878264ed621852a1d952e4e8c1d7
2018-05-16 05:23:44 -07:00
Markus Stange 68470bc3c0 Bug 1461555 - Rename PseudoStack to ProfilingStack. r=njn
This also changes many references to the 'pseudo stack' to refer to the 'label
stack' instead. The label stack is one of the two stacks that are managed by
the profiling stack, the other stack being the JS interpreter stack.

MozReview-Commit-ID: Ed0YMMeCBY8

--HG--
extra : rebase_source : 5675d670f424c7d7dda04bafc2b3431fa2485e3c
2018-05-15 01:03:11 -04:00
Sebastian Hengst 0eb9d87997 merge mozilla-inbound to mozilla-central. a=merge 2018-04-12 22:20:13 +03:00
Sebastian Hengst ec371d68d4 Bug 525063 - Backing out js/public/ for violation of committing guidelines. a=backout 2018-04-12 22:15:26 +03:00
Tristan Bourvon a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Jan de Mooij 040949a5a7 Bug 1452982 part 1 - Use rt->mainContextFromOwnThread() instead of TlsContext.get() in some places. r=jonco 2018-04-12 13:04:13 +02:00
Jan de Mooij 68eeb821cb Bug 1449135 part 3 - Remove cooperative scheduling; bake in JSContext* in JIT code. r=luke 2018-03-27 18:00:27 +02:00
Jan de Mooij e8dc00e48a Bug 1447578 part 3 - Remove MacroAssembler rooting/tracing code. r=jonco
--HG--
extra : rebase_source : 848f220d63897a53c662b164eb7d5e98222f50bb
2018-03-21 16:58:04 +01:00
Jon Coppeard 8b9f1c68b9 Bug 1441783 - Remove unused AutoVectorRooter class and refactor r=sfink 2018-03-01 14:47:29 +00:00
Steve Fink 1c184b5229 Bug 903519 - Strings in the nursery: barriers, r=jonco
--HG--
extra : rebase_source : 64f8aa23157acad4f56c0fedfe7055976ecdccaa
extra : source : 7d56db66836900bc7758c6829b9235a3dd26947e
2017-07-28 16:46:38 -07:00
Markus Stange 49735a3768 Bug 785440 - Add js::GetContextProfilingStack in such a way that it can be inlined into non-JS code. r=sfink
This requires moving some things around. RootingContext is an existing
superclass of JSContext whose members are exposed in a header file, so we can
use it to expose the location of the geckoProfiler_ member to non-JS code.

MozReview-Commit-ID: 3oClAEVMsDr

--HG--
extra : rebase_source : f5943a710cddaa65cfdcb13370f95387caaf6892
extra : source : 2f5b804cef7b0888ac6121f5645bbb910750ed72
2018-01-05 14:35:00 +01:00
David Teller 4382d682b7 Bug 1377007 - GC for binjs-ref parser;r=sfink
MozReview-Commit-ID: EjZZ1ofm52t

--HG--
extra : rebase_source : 72f5f294fd11360260c6958520c980cd6dcb3427
2017-09-05 14:51:30 +02:00