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

2867 Коммитов

Автор SHA1 Сообщение Дата
André Bargull 1b62966316 Bug 1595745 - Part 16: Remove old-style initialisation for ProtoKey constructors. r=mgaudet
All JSProtoKey entries are now using `InitViaClassSpec`, so we can remove the 'init'
parameter from `JS_FOR_PROTOTYPES` and update all callers accordingly. Furthermore
the `protoTable` array can be changed to an array of `JSClass*` and
`GlobalObject::resolveConstructor` can be cleaned-up to always use the ClassSpec
initialisation path.

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

--HG--
extra : moz-landing-system : lando
2019-11-19 11:05:44 +00:00
André Bargull d187c806ea Bug 1595745 - Part 15: Change WebAssembly to use ClassSpec. r=mgaudet
Also use ClassSpec initialisation for all WebAssembly namespace constructors
to ensure a failed initialisation can still be retried.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:44:36 +00:00
André Bargull c51a6f618a Bug 1595745 - Part 14: Change AsyncGeneratorFunction to use ClassSpec. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D52680

--HG--
extra : moz-landing-system : lando
2019-11-15 17:44:19 +00:00
André Bargull aacc1f6c9c Bug 1595745 - Part 13: Change AsyncFunction to use ClassSpec. r=mgaudet
Update AsyncFunction similar to the changes performed in part 13.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:43:53 +00:00
André Bargull 57ec43f43c Bug 1595745 - Part 12: Change GeneratorFunction to use ClassSpec. r=mgaudet
The "constructor" property of the GeneratorFunction prototype is non-writable,
so we need to manually adjust the property attributes in the `FinishClassInitOp`.
This change needs to happen first to ensure "constructor" is still stored in
the last property, which in turn ensures the property can be modified without
triggering a transition into dictionary mode.


jsapi.cpp:
Remove the JSProto_GeneratorFunction special cases now that we can use
`ClassSpec::DontDefineConstructor`.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:43:30 +00:00
André Bargull 4be8805674 Bug 1595745 - Part 11: Change TypedObject to use ClassSpec. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D52667

--HG--
extra : moz-landing-system : lando
2019-11-15 17:43:10 +00:00
André Bargull 8d8f78e33b Bug 1595745 - Part 10: Change Proxy to use ClassSpec. r=mgaudet
Proxy JSClasses are defined through a special macro (`PROXY_CLASS_DEF`), which
ensures all Proxy related bits are set correctly. The macro doesn't allow to
specify a ClassSpec, so we need to add a new macro which supports that
functionality.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:42:55 +00:00
André Bargull dfc558b12e Bug 1595745 - Part 9: Change Intl to use ClassSpec. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D52665

--HG--
extra : moz-landing-system : lando
2019-11-15 17:42:45 +00:00
André Bargull cc20d25168 Bug 1595745 - Part 8: Change Reflect to use ClassSpec. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D52664

--HG--
extra : moz-landing-system : lando
2019-11-15 17:42:38 +00:00
André Bargull 224a88dfbe Bug 1595745 - Part 7: Change Atomics to use ClassSpec. r=mgaudet
Similar changes like in part 5, only now for the Atomics object.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:42:36 +00:00
André Bargull 09bd4eec3f Bug 1595745 - Part 6: Change Math to use ClassSpec. r=mgaudet
Similar to the JSON changes in part 5. Additionally 'FinishClassInitOp' is
needed to initialise the double constant properties.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:42:34 +00:00
André Bargull 0d959418d5 Bug 1595745 - Part 5: Change JSON to use ClassSpec. r=mgaudet
The JSON ClassSpec uses a custom 'createConstructor', because the JSON object
is a singleton object and not a built-in constructor function.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:41:01 +00:00
André Bargull 3bb9fb0598 Bug 1595745 - Part 4: Change Symbol to use ClassSpec. r=mgaudet
A ClassSpec's 'FinishClassInitOp' isn't called when `InitBareBuiltinCtor` is
used, which allows us to unconditionally define all well-known symbols in
`SymbolClassFinish`. That means we no longer need the separate `InitBareSymbolCtor`
function.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:40:43 +00:00
André Bargull ecb8f7ebce Bug 1595745 - Part 3: Change String to use ClassSpec. r=mgaudet
Move String to ClassSpec using similar changes like done for Number in part 2.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:40:20 +00:00
André Bargull 8044c06dcf Bug 1595745 - Part 2: Change Number to use ClassSpec. r=mgaudet
In addition to a custom 'createProperty' hook, the Number ClassSpec also uses
a 'FinishClassInitOp' to initialise Number-related global properties like
`isNaN` and to initialise functions which are shared between Number and the
global object (i.e. `parseInt`).

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:40:00 +00:00
André Bargull 54967da1df Bug 1595745 - Part 1: Change Boolean to use ClassSpec. r=mgaudet
Boolean.prototype is itself a Boolean object, so the ClassSpec needs to use
a custom 'createPrototype' function to create and initialise the prototype
object.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 17:39:37 +00:00
Matthew Gaudet a1ba26166a Bug 1596603 - Add [SMDOC] to jsid comment r=tcampbell DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D53106

--HG--
extra : moz-landing-system : lando
2019-11-15 16:49:08 +00:00
Steve Fink 0a8fd13f71 Bug 1593399 - Rework how mark colors are handled in weakmap marking r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D51492

--HG--
extra : moz-landing-system : lando
2019-11-15 16:40:44 +00:00
Cosmin Sabou bc322e0381 Backed out 16 changesets (bug 1595745) for spidermonkey bustages on testWasm.cpp. CLOSED TREE
Backed out changeset 3b5c6aaf5a18 (bug 1595745)
Backed out changeset 8e8c4124f219 (bug 1595745)
Backed out changeset de5c2cca64c6 (bug 1595745)
Backed out changeset b11677f10f9d (bug 1595745)
Backed out changeset 2ce96c6187c2 (bug 1595745)
Backed out changeset e089ebe699d2 (bug 1595745)
Backed out changeset a514661afdda (bug 1595745)
Backed out changeset 29ec5ccb4adf (bug 1595745)
Backed out changeset 3b0e242d762a (bug 1595745)
Backed out changeset fef5c8d5cb90 (bug 1595745)
Backed out changeset 68c5cdced300 (bug 1595745)
Backed out changeset d5f5e9091fb0 (bug 1595745)
Backed out changeset 6c917c2ca4a7 (bug 1595745)
Backed out changeset 338ad438e066 (bug 1595745)
Backed out changeset 61d25028669b (bug 1595745)
Backed out changeset f082e5173ed4 (bug 1595745)
2019-11-15 18:17:31 +02:00
André Bargull 4f9534a8ce Bug 1595745 - Part 16: Remove old-style initialisation for ProtoKey constructors. r=mgaudet
All JSProtoKey entries are now using `InitViaClassSpec`, so we can remove the 'init'
parameter from `JS_FOR_PROTOTYPES` and update all callers accordingly. Furthermore
the `protoTable` array can be changed to an array of `JSClass*` and
`GlobalObject::resolveConstructor` can be cleaned-up to always use the ClassSpec
initialisation path.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:54:19 +00:00
André Bargull 781023effd Bug 1595745 - Part 15: Change WebAssembly to use ClassSpec. r=mgaudet
Also use ClassSpec initialisation for all WebAssembly namespace constructors
to ensure a failed initialisation can still be retried.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:28:12 +00:00
André Bargull eef879a287 Bug 1595745 - Part 14: Change AsyncGeneratorFunction to use ClassSpec. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D52680

--HG--
extra : moz-landing-system : lando
2019-11-15 15:06:18 +00:00
André Bargull fab0ea3941 Bug 1595745 - Part 13: Change AsyncFunction to use ClassSpec. r=mgaudet
Update AsyncFunction similar to the changes performed in part 13.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:05:58 +00:00
André Bargull 2777f45108 Bug 1595745 - Part 12: Change GeneratorFunction to use ClassSpec. r=mgaudet
The "constructor" property of the GeneratorFunction prototype is non-writable,
so we need to manually adjust the property attributes in the `FinishClassInitOp`.
This change needs to happen first to ensure "constructor" is still stored in
the last property, which in turn ensures the property can be modified without
triggering a transition into dictionary mode.


jsapi.cpp:
Remove the JSProto_GeneratorFunction special cases now that we can use
`ClassSpec::DontDefineConstructor`.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:54:45 +00:00
André Bargull 6f59566543 Bug 1595745 - Part 11: Change TypedObject to use ClassSpec. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D52667

--HG--
extra : moz-landing-system : lando
2019-11-15 15:05:10 +00:00
André Bargull 34c067eaa6 Bug 1595745 - Part 10: Change Proxy to use ClassSpec. r=mgaudet
Proxy JSClasses are defined through a special macro (`PROXY_CLASS_DEF`), which
ensures all Proxy related bits are set correctly. The macro doesn't allow to
specify a ClassSpec, so we need to add a new macro which supports that
functionality.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:55:26 +00:00
André Bargull 0caf0ad446 Bug 1595745 - Part 9: Change Intl to use ClassSpec. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D52665

--HG--
extra : moz-landing-system : lando
2019-11-15 15:04:27 +00:00
André Bargull a4bc428225 Bug 1595745 - Part 8: Change Reflect to use ClassSpec. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D52664

--HG--
extra : moz-landing-system : lando
2019-11-15 15:04:02 +00:00
André Bargull 4acd45cff3 Bug 1595745 - Part 7: Change Atomics to use ClassSpec. r=mgaudet
Similar changes like in part 5, only now for the Atomics object.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:03:42 +00:00
André Bargull 563f03bb43 Bug 1595745 - Part 6: Change Math to use ClassSpec. r=mgaudet
Similar to the JSON changes in part 5. Additionally 'FinishClassInitOp' is
needed to initialise the double constant properties.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:03:20 +00:00
André Bargull 11d51353e1 Bug 1595745 - Part 5: Change JSON to use ClassSpec. r=mgaudet
The JSON ClassSpec uses a custom 'createConstructor', because the JSON object
is a singleton object and not a built-in constructor function.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:02:53 +00:00
André Bargull ec168eb8c2 Bug 1595745 - Part 4: Change Symbol to use ClassSpec. r=mgaudet
A ClassSpec's 'FinishClassInitOp' isn't called when `InitBareBuiltinCtor` is
used, which allows us to unconditionally define all well-known symbols in
`SymbolClassFinish`. That means we no longer need the separate `InitBareSymbolCtor`
function.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:02:44 +00:00
André Bargull 862270eda3 Bug 1595745 - Part 3: Change String to use ClassSpec. r=mgaudet
Move String to ClassSpec using similar changes like done for Number in part 2.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:02:35 +00:00
André Bargull c0763fac0e Bug 1595745 - Part 2: Change Number to use ClassSpec. r=mgaudet
In addition to a custom 'createProperty' hook, the Number ClassSpec also uses
a 'FinishClassInitOp' to initialise Number-related global properties like
`isNaN` and to initialise functions which are shared between Number and the
global object (i.e. `parseInt`).

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

--HG--
extra : moz-landing-system : lando
2019-11-15 15:00:39 +00:00
André Bargull 8f9c68599f Bug 1595745 - Part 1: Change Boolean to use ClassSpec. r=mgaudet
Boolean.prototype is itself a Boolean object, so the ClassSpec needs to use
a custom 'createPrototype' function to create and initialise the prototype
object.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 14:59:59 +00:00
Nazım Can Altınova 8f6754f6fc Bug 1468789 - Part 2: Collect inner window id information for js interpreter frames and add a mechanism to get that for jit frames r=gerald,jandem,mstange
Differential Revision: https://phabricator.services.mozilla.com/D51860

--HG--
extra : moz-landing-system : lando
2019-11-15 08:01:30 +00:00
Nazım Can Altınova bc87c9100f Bug 1468789 - Part 1: Add window id inside realm creation options. r=jandem,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D51859

--HG--
extra : moz-landing-system : lando
2019-11-14 12:26:25 +00:00
Noemi Erli 0165e36c21 Backed out 10 changesets (bug 1568903) for causing mochitest failures
Backed out changeset 76ad398222a6 (bug 1568903)
Backed out changeset f4d9fda6d7f2 (bug 1568903)
Backed out changeset 379d0f2de211 (bug 1568903)
Backed out changeset 3f4aee7f2893 (bug 1568903)
Backed out changeset 595accbef95e (bug 1568903)
Backed out changeset 567d497a39f4 (bug 1568903)
Backed out changeset 127a44494b67 (bug 1568903)
Backed out changeset 27c54b414c35 (bug 1568903)
Backed out changeset d2b01a1ad0a9 (bug 1568903)
Backed out changeset 58c002a9cb78 (bug 1568903)
2019-11-15 13:50:40 +02:00
André Bargull e2c7581d9d Bug 1568903 - Part 4: Implement AggregateError for Nightly. r=jorendorff
Adds AggregateError, but only enables it for Nightly builds, because the draft
proposal is still incomplete, so it doesn't make sense to let this feature ride
the trains at this moment.

- The `other_error_properties` array was changed to individual static variables,
because AggregateError has more than three properties, which prevents it to be
stored in `JSPropertySpec[][3]`.

- `AggregateErrorObject` can't use the normal `ErrorObject` class, because it
needs an additional slot for the [[AggregateErrors]].

- For similar reasons it can't use the shared `Error` constructor function,
because the `AggregateError` constructor has an additional `errors` iterable
argument which it needs to process.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 10:29:30 +00:00
Jan de Mooij 72d7c72f56 Bug 1594054 - Move ExecutableAllocator from JitRuntime to JitZone. r=jonco,erahm
This matches the JitCode GC-thing lifetime and will hopefully help avoid
fragmentation.

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

--HG--
extra : moz-landing-system : lando
2019-11-14 10:20:02 +00:00
Doug Thayer 97c5d40384 Bug 1586920 - Sometimes include dynamic string of label frames in BHR r=nika
This adds two AUTO_PROFILER_LABEL_DYNAMIC_... macros and updates select
usages of the old macros to use the new ones. These new macros cause
the dynamic string of the label to be included in BHR stacks.

We don't want to do this all of the time, as in many cases we may not
be interested enough in the dynamic string or it may be sensitive
information, but it is rather important information for certain cases.

This uses the same buffer that we use for the strings for JS frames,
and if we fail to fit into that buffer we just append the raw label.

If the string is too long for our static buffer (128 bytes), we just
leave it truncated, as it should be stable and we may be able to infer
from the truncated form what the full form would be.

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

--HG--
extra : moz-landing-system : lando
2019-11-11 20:27:44 +00:00
Cosmin Sabou a055b60f76 Backed out changeset 8daa186bd18b (bug 1593399) for causing crashes @js::gcstats::Statistics. CLOSED TREE 2019-11-13 07:00:37 +02:00
Philip Chimento b90e70a466 Bug 1590907 - Remove obsolete macro JS_OOM_DO_BACKTRACES. r=sfink
This macro isn't defined anywhere and doesn't seem to do anything. It
affects the oom-backtraces property of the build configuration object in
the testing functions, but since the macro is never defined, it seems to
be always set to false anyway, so just hardcode it.

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

--HG--
extra : moz-landing-system : lando
2019-11-12 22:01:06 +00:00
Philip Chimento c6f2907808 Bug 1590907 - Remove obsolete macro ENABLE_SHARED_ARRAY_BUFFER. r=sfink
This macro is not defined anywhere and has no effect in the end whether
it's defined or not.

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

--HG--
extra : moz-landing-system : lando
2019-11-12 21:58:55 +00:00
Steve Fink 3f8b1d909a Bug 1593399 - Rework how mark colors are handled in weakmap marking r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D51492

--HG--
extra : moz-landing-system : lando
2019-11-12 22:24:29 +00:00
Cosmin Sabou f155bb6137 Backed out changeset de7a1a1b75f0 (bug 1593399) for build bustages on WeakMap-inl.h.
--HG--
extra : histedit_source : a6d4ee525d48086f5981f13d95eba2b2e3019262
2019-11-12 22:34:58 +02:00
Steve Fink b3059609b0 Bug 1593399 - Rework how mark colors are handled in weakmap marking r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D51492

--HG--
extra : moz-landing-system : lando
2019-11-12 19:54:06 +00:00
André Bargull a1298a12f9 Bug 1592992 - Part 19: Move jsutil.cpp to util/Utility.cpp. r=jonco
This file provides the implementation of js/Utility.h, so it should be renamed
to match the header name.

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

--HG--
rename : js/src/jsutil.cpp => js/src/util/Utility.cpp
extra : moz-landing-system : lando
2019-11-08 13:24:15 +00:00
Jon Coppeard 72de7c7261 Bug 1593260 - Don't use remove_if for sweeping GCVector as the predicate can modify the elements r=anba
Differential Revision: https://phabricator.services.mozilla.com/D51786

--HG--
extra : moz-landing-system : lando
2019-11-05 15:42:19 +00:00
Jeff Walden 373e83663e Bug 1582348 - Make WritableStreamDefault{Controller,Writer} real classes, and resolve them only when writable streams have been enabled. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D51047

--HG--
extra : moz-landing-system : lando
2019-11-05 05:12:15 +00:00