<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>29322</bug_id>
          
          <creation_ts>2015-12-04 19:37:36 +0000</creation_ts>
          <short_desc>DOMMatrix multiply() with no arguments is not useful</short_desc>
          <delta_ts>2016-02-15 14:53:32 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>FXTF</product>
          <component>Geometry</component>
          <version>unspecified</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philip Jägenstedt">philipj</reporter>
          <assigned_to name="Simon Pieters">zcorpan</assigned_to>
          <cc>mike</cc>
          
          <qa_contact>sideshowbarker+geometry</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>124365</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2015-12-04 19:37:36 +0000</bug_when>
    <thetext>https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-skewy-sy-sy

[[
DOMMatrix multiply(optional DOMMatrixInit other);
]]

Calling just multiply() with no arguments isn&apos;t handled by the definition, but if it were it could only return a copy of the matrix, which does not seem useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124380</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Pieters">zcorpan</who>
    <bug_when>2015-12-07 16:46:55 +0000</bug_when>
    <thetext>The argument is a dictionary, which has to be optional IIRC, and not passing it is equivalent to passing {} per WebIDL. Supporting dictionaries is for consistency and ergonomics.

Also note that https://drafts.fxtf.org/geometry/#validate-and-fixup gets run for the argument, which fills in missing members.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124384</commentid>
    <comment_count>2</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2015-12-07 19:14:32 +0000</bug_when>
    <thetext>Are you sure that dictionaries have to be optional? Given that dictionary members can be required, that wouldn&apos;t really work, and no event interfaces could have non-nullable object members if the init dict and specific members in it aren&apos;t required.

I&apos;m looking at this from the perspective of https://github.com/whatwg/compat/issues/19

WebKitCSSMatrix has a multiply method that takes a WebKitCSSMatrix argument. It&apos;s actually optional, but that makes no sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124387</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Pieters">zcorpan</who>
    <bug_when>2015-12-07 21:13:52 +0000</bug_when>
    <thetext>[[
If the type of an argument is a dictionary type or a union type that has a dictionary type as one of its flattened member types, and that dictionary type and its ancestors have no required members, and the argument is either the final argument or is followed only by optional arguments, then the argument must be specified as optional. Such arguments are always considered to have a default value of an empty dictionary, unless otherwise specified.
]]
http://heycam.github.io/webidl/#idl-operations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124388</commentid>
    <comment_count>4</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2015-12-07 21:17:12 +0000</bug_when>
    <thetext>(In reply to Simon Pieters from comment #3)
&gt; [[
&gt; If the type of an argument is a dictionary type or a union type that has a
&gt; dictionary type as one of its flattened member types, and that dictionary
&gt; type and its ancestors have no required members, and the argument is either
&gt; the final argument or is followed only by optional arguments, then the
&gt; argument must be specified as optional. Such arguments are always considered
&gt; to have a default value of an empty dictionary, unless otherwise specified.
&gt; ]]
&gt; http://heycam.github.io/webidl/#idl-operations

Cool, so it carves out an exception for required members, which then makes sense.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>