gecko-dev/dom/bindings
Markus Stange b2c3ca5adb Bug 1499507 - Use AUTO_PROFILER_LABEL_DYNAMIC_FAST for WebIDL APIs. r=bzbarsky
This means that our binary does not need to include concatenated strings such
as "set CanvasRenderingContext2D.fillStyle". It only needs to contain the
individual strings "CanvasRenderingContext2D" and "fillStyle" which are most
likely already present in the binary.

This change reduces the binary size on macOS x64 by around 200KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build. This change makes us generate slightly more code, which is
very much offset by the reduction in the amount of strings we ship.

@@ -15,22 +15,23 @@

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

    movq       0x8(%rbx), %rax
    movq       %r12, %rcx
    shlq       $0x5, %rcx
-   leaq       aGetAttrspecifi, %rdx                       ; "get Attr.specified"
+   leaq       aAttr, %rdx                                 ; "Attr"
    movq       %rdx, (%rax,%rcx)
-   movq       $0x0, 0x8(%rax,%rcx)
+   leaq       aSpecified, %rdx                            ; "specified"
+   movq       %rdx, 0x8(%rax,%rcx)
    leaq       -40(%rbp), %rdx
    movq       %rdx, 0x10(%rax,%rcx)
-   movl       $0x71, 0x1c(%rax,%rcx)
+   movl       $0x3a1, 0x1c(%rax,%rcx)
    leal       0x1(%r12), %eax
    movl       %eax, 0x10(%rbx)

    movq       %r15, %rdi
    call       __ZNK7mozilla3dom4Attr9SpecifiedEv          ; mozilla::dom::Attr::Specified() const
    movzxl     %al, %eax
    movabsq    $0xfff9000000000000, %rcx
    orq        %rax, %rcx

Depends on D9204

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

--HG--
extra : moz-landing-system : lando
2018-11-06 04:34:58 +00:00
..
crashtests
docs
mozwebidlcodegen Bug 1501124 - Switch BackstagePass to use WebIDLGlobalNameHash, r=bzbarsky 2018-10-25 10:24:36 -04:00
parser Bug 1489301 - Part 6: Remove references to 'System' from WebIDL.py, r=bzbarsky 2018-10-23 16:03:52 -04:00
test Bug 1501662 - Add more .eslintrc.js files for test directories (dom, modules, netwerk and parser). r=mossop 2018-10-24 19:11:17 +00:00
AtomList.h
BindingDeclarations.h Bug 1493093 - Allow to relax MOZ_NON_TEMPORARY_CLASS for some specific constructors r=andi 2018-09-24 22:47:12 +00:00
BindingUtils.cpp Bug 1503664. Keep trying to pin down why ClearDocumentDependentSlots is crashing. r=mccr8 2018-10-31 20:25:35 -04:00
BindingUtils.h Bug 1500926 - Part 1: Use a statically generated perfect hash in WebIDLGlobalNameHash, r=bzbarsky 2018-10-24 20:11:01 -04:00
Bindings.conf Backed out 2 changesets (bug 1482091) for bc failures on browser_domFullscreen_fullscreenMode.js 2018-11-03 01:08:36 +02:00
CallbackFunction.h Bug 1477923. Make WebIDL callbacks store a global in addition to the object that's used as a callback. r=mccr8 2018-08-03 17:11:39 -04:00
CallbackInterface.cpp Bug 1485066 - Part 8: Rename JS_EncodeString to JS_EncodeStringToLatin1. r=Waldo 2018-09-05 06:05:03 -07:00
CallbackInterface.h Bug 1477923. Make WebIDL callbacks store a global in addition to the object that's used as a callback. r=mccr8 2018-08-03 17:11:39 -04:00
CallbackObject.cpp Bug 1480244: Part 1b - Rename nsInProcessTabChildGlobal to InProcessTabChildMessageManager. r=bz 2018-08-10 14:08:07 -07:00
CallbackObject.h Bug 1490009 - Clear CallbackObject fields after use for promise job to avoid tenuring objects unnecessarily r=bz 2018-09-20 13:28:59 +01:00
Codegen.py Bug 1499507 - Use AUTO_PROFILER_LABEL_DYNAMIC_FAST for WebIDL APIs. r=bzbarsky 2018-11-06 04:34:58 +00:00
Configuration.py Bug 1489301 - Part 6: Remove references to 'System' from WebIDL.py, r=bzbarsky 2018-10-23 16:03:52 -04:00
DOMJSClass.h Bug 1033916 - Move JSAutoByteString out of jsapi.h into js/public/AutoByteString.h, incidentally breaking the jsfriendapi.h -> jsapi.h dependency. r=jandem 2018-08-20 07:46:08 -07:00
DOMJSProxyHandler.cpp Bug 1487167 - Various DOM rooting issues. r=bz 2018-08-28 21:26:50 -07:00
DOMJSProxyHandler.h Bug 638054 - Remove watch class-hook and proxy trap r=jorendorff,bz 2017-10-24 20:48:14 +02:00
DOMString.h Bug 1473149. Add an external string variant that keeps a DynamicAtom alive. r=njn,rwood 2018-07-10 11:21:42 -07:00
Date.cpp
Date.h
ErrorIPCUtils.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
ErrorResult.h Bug 1475515 - Remove member initialization for union Extra::mMessage. r=bz 2018-07-13 14:39:12 +03:00
Errors.msg Bug 1497301 part 4. Simplify Location::CheckURL. r=bholley 2018-10-12 11:07:18 -04:00
Exceptions.cpp Bug 1484389 - Move various SavedFrame-related functions and data types into js/public/SavedFrameAPI.h so that users aren't forced to depend on jsapi.h or jsfriendapi.h for them. r=jandem 2018-08-20 07:45:44 -07:00
Exceptions.h Bug 1435483 part 16. Switch to using dom::Exception, not nsIException, in C++ code. r=qdot 2018-02-05 16:34:05 -05:00
FakeString.h Bug 1489454 - Remove all trailing whitespaces (again) r=Ehsan 2018-09-07 14:47:51 +00:00
GenerateCSS2PropertiesWebIDL.py Bug 1471114 part 1 - Move CSSPropFlags prefix generation into GenerateServoCSSPropList.py. r=emilio 2018-06-27 15:34:29 +10:00
IterableIterator.cpp Bug 1412125, part 2 - Fix dom/ mode lines. r=qdot 2017-10-26 15:08:41 -07:00
IterableIterator.h Bug 1472342: Part 1 - Properly support iterator getters which need JSContexts. r=bz 2018-07-18 13:09:04 -07:00
JSSlots.h
Makefile.in Bug 1455799 - Make an explicit webidl export target; r=bz,chmanchester 2018-04-30 12:52:28 -04:00
NonRefcountedDOMObject.h Bug 1500200 - Add non-default implementations of various ways to construct NonRefcountedDOMObject r=peterv 2018-10-31 10:45:15 +00:00
Nullable.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
PrimitiveConversions.h
ReadableStream.h
Record.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
RootedDictionary.h
RootedOwningNonNull.h
RootedRefPtr.h
SimpleGlobalObject.cpp Bug 1479363 part 2 - Use JSAutoRealm instead of JSAutoRealmAllowCCW in dom/bindings. r=bz 2018-08-02 08:48:50 +02:00
SimpleGlobalObject.h
SpiderMonkeyInterface.h
StructuredClone.cpp Bug 1480678 part 11 - Wrap the typed array in the current compartment instead of entering its realm in WriteStructuredCloneImageData. r=bz 2018-08-09 10:48:29 +02:00
StructuredClone.h
ToJSValue.cpp
ToJSValue.h Bug 1466221. Implement ToJSValue variants for non-refcounted (so owned) DOM objects. r=peterv 2018-06-09 01:03:15 -04:00
TypedArray.h Bug 1479363 part 2 - Use JSAutoRealm instead of JSAutoRealmAllowCCW in dom/bindings. r=bz 2018-08-02 08:48:50 +02:00
UnionMember.h
WebIDLGlobalNameHash.cpp Bug 1501124 - Switch BackstagePass to use WebIDLGlobalNameHash, r=bzbarsky 2018-10-25 10:24:36 -04:00
WebIDLGlobalNameHash.h Bug 1501124 - Switch BackstagePass to use WebIDLGlobalNameHash, r=bzbarsky 2018-10-25 10:24:36 -04:00
XrayExpandoClass.h
mach_commands.py
moz.build Bug 1493237 - Use a test-only non-nsISupports wrapper cached WebIDL class in a weak map test r=bzbarsky 2018-10-11 23:02:10 +00:00
nsIScriptError.idl Bug 1479058 Part 8 - Store time warp target on nsIScriptError, r=smaug. 2018-08-02 23:31:29 +00:00
nsScriptError.cpp Bug 1488628 - Change nsIConsoleMessage.message to an AString. r=erahm 2018-09-05 13:31:42 +10:00
nsScriptError.h Bug 1479058 Part 8 - Store time warp target on nsIScriptError, r=smaug. 2018-08-02 23:31:29 +00:00
nsScriptErrorWithStack.cpp Bug 1480678 part 5 - Use nsScriptErrorWithStack's stack global in ConsoleListener::Observe. r=bz 2018-08-04 15:30:40 +02:00