<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:15272481;
        mso-list-type:hybrid;
        mso-list-template-ids:-1361258636 -1561934868 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Calibri","sans-serif";
        mso-fareast-font-family:Calibri;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Definitely agree that the tests should be fixed, and I’ll take care of this.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">For the short term, the fix feels correct as there could be more tests broken for the same reason, yet presently (correctly) passing against Chrome/FireFox/etc.
I’d hate to see a new (browser) check-in break some conformance functionality, yet continue to pass the related Test262 test because of this.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">For the long term, I totally agree that grouping true+undefined together feels wrong. Two possible solutions off the top of my head:<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Adapt all tests to throw when the test fails<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Adapt them all to follow the true/false function return paradigm. I believe this might have been considered before, but there was a technical reason
against it (e.g., ES3 tests were dependent upon being run from a global context?)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Other suggestions would be appreciated.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Dave<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Mark S. Miller [mailto:erights@google.com]
<br>
<b>Sent:</b> Monday, January 17, 2011 3:01 PM<br>
<b>To:</b> Dave Fugate<br>
<b>Cc:</b> test262-discuss@mozilla.org<br>
<b>Subject:</b> Re: test262-discuss Digest, Vol 4, Issue 2<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Mon, Jan 17, 2011 at 2:59 PM, Mark S. Miller <<a href="mailto:erights@google.com">erights@google.com</a>> wrote:<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">On Mon, Jan 17, 2011 at 2:49 PM, Dave Fugate <<a href="mailto:dfugate@microsoft.com" target="_blank">dfugate@microsoft.com</a>> wrote:<o:p></o:p></p>
<p class="MsoNormal">Hi Mark, basically what's going on is the original test harness expected either a return value of 'true' or falsy for all IE Test Center-based test cases. The problem with this is Sputnik tests don't return anything so the harness was
altered at some point in time to accept 'true' or 'undefined' as success values. This change on its own is harmless provided all of Microsoft's tests explicitly return true or false - as you've discovered they do not. If you're interested, Chrome 8.0 also
had the following false positives:<br>
- 11.1.5_4-4-b-1<br>
- 11.1.5_4-4-b-2<br>
- 11.1.5_4-4-c-1<br>
- 11.1.5_4-4-c-2<br>
- 11.1.5_4-4-d-1<br>
- 11.1.5_4-4-d-2<br>
- 11.1.5_4-4-d-3<br>
- 11.1.5_4-4-d-4<br>
- 11.4.1-4.a-5<br>
- 11.4.1-4.a-7<br>
- 15.2.3.3-4-178<br>
- 15.2.3.3-4-179<br>
- 15.2.3.3-4-180<br>
- 15.2.3.3-4-188<br>
- 15.4.4.14-1-1<br>
- 15.4.4.14-1-2<br>
- 15.5.4.20-1-1<br>
- 15.5.4.20-1-2<br>
- 15.5.4.20-4-10<br>
- 15.5.4.20-4-18<br>
- 15.5.4.20-4-34<br>
- 15.10.6<br>
- 15.10.7.1-1<br>
- 15.10.7.2-1<br>
- 15.10.7.3-1<br>
- 15.10.7.4-1<br>
- 15.10.7.5-1<br>
<br>
I just fixed the harness to differentiate between expected Sputnik/Test Center return values based on the filename (i.e., all Sputnik test cases begin with "S" where Test Center tests do not), and will upload this to the live website.<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal">This seems like the wrong fix. Why not fix all tests to return either true or false?<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">And to have the test harness differentiate only truthy and falsy. Grouping true and undefined into the same bucket seems like a mistake.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
My best,<br>
<span style="color:#888888"><br>
Dave</span><o:p></o:p></p>
<div>
<p class="MsoNormal"><br>
-----Original Message-----<br>
From: Dave Fugate<br>
Sent: Monday, January 17, 2011 12:20 PM<br>
To: <a href="mailto:test262-discuss@mozilla.org" target="_blank">test262-discuss@mozilla.org</a><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">Subject: RE: test262-discuss Digest, Vol 4, Issue 2<br>
<br>
Thanks for the report Mark! Looks like something is up with the test harness here (I see the same issue under Chrome 8.0.552.237), and will investigate.<br>
<br>
My best,<br>
<br>
Dave<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Mon, 17 Jan 2011 01:41:37 -0800<br>
From: Mark Miller <<a href="mailto:erights@gmail.com" target="_blank">erights@gmail.com</a>><br>
To: <a href="mailto:test262-discuss@mozilla.org" target="_blank">test262-discuss@mozilla.org</a><br>
Subject: test262 shows a pass for a failing testcase<br>
Message-ID:<br>
<AANLkTi=rA+roQpYGDhTD=<a href="mailto:1McpkNgVqXNtfhEaUpc%2BXf8@mail.gmail.com" target="_blank">1McpkNgVqXNtfhEaUpc+Xf8@mail.gmail.com</a>><br>
Content-Type: text/plain; charset=ISO-8859-1<br>
<br>
After running test262 on Chrome 10.0.634.0 dev, the results page shows<br>
<br>
> 15.10.7.2-1 RegExp.prototype.global is of type Boolean [source] pass<br>
<br>
Clicking on the source gives<br>
<br>
<br>
> Test?15.10.7.2-1<br>
><br>
> Description<br>
><br>
> RegExp.prototype.global is of type Boolean<br>
><br>
><br>
> Testcase<br>
><br>
> function testcase() {<br>
> if((typeof(RegExp.prototype.global)) === 'boolean')<br>
> return true;<br>
> }<br>
><br>
> Path<br>
><br>
> TestCases/chapter15/15.10/15.10.7/<a href="http://15.10.7.2/15.10.7.2-1.js" target="_blank">15.10.7.2/15.10.7.2-1.js</a><br>
><br>
<br>
But on Chrome 10.0.634.0 dev, RegExp.prototype is an object, not a RegExp, and it has no 'global' property. The above typeof returns the string 'undefined',so true is not returned, the function falls off the end returning undefined which is falsy.<br>
<br>
Why does this show as a passing test?<br>
<br>
--<br>
<br>
? ? Cheers,<br>
? ? --MarkM<br>
<br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
test262-discuss mailing list<br>
<a href="mailto:test262-discuss@mozilla.org" target="_blank">test262-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/test262-discuss" target="_blank">https://mail.mozilla.org/listinfo/test262-discuss</a><br>
<br>
<br>
End of test262-discuss Digest, Vol 4, Issue 2<br>
*********************************************<br>
<br>
_______________________________________________<br>
test262-discuss mailing list<br>
<a href="mailto:test262-discuss@mozilla.org" target="_blank">test262-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/test262-discuss" target="_blank">https://mail.mozilla.org/listinfo/test262-discuss</a><o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
</div>
</div>
<p class="MsoNormal"><span style="color:#888888"><br>
<br clear="all">
<br>
-- <br>
Cheers,<br>
--MarkM</span><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<br>
-- <br>
Cheers,<br>
--MarkM<o:p></o:p></p>
</div>
</body>
</html>