mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
184 lines
4.9 KiB
JavaScript
184 lines
4.9 KiB
JavaScript
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is mozilla.org code.
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* Netscape Communications Corporation.
|
|
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
* pschwartau@netscape.com
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
var gTestfile = 'lexical-001.js';
|
|
|
|
/*
|
|
* Date: 26 November 2000
|
|
*
|
|
*SUMMARY: Testing numeric literals that begin with 0.
|
|
*This test arose from Bugzilla bug 49233.
|
|
*The best explanation is from jsscan.c:
|
|
*
|
|
* "We permit 08 and 09 as decimal numbers, which makes
|
|
* our behaviour a superset of the ECMA numeric grammar.
|
|
* We might not always be so permissive, so we warn about it."
|
|
*
|
|
*Thus an expression 010 will evaluate, as always, as an octal (to 8).
|
|
*However, 018 will evaluate as a decimal, to 18. Even though the
|
|
*user began the expression as an octal, he later used a non-octal
|
|
*digit. We forgive this and assume he intended a decimal. If the
|
|
*JavaScript "strict" option is set though, we will give a warning.
|
|
*/
|
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
var BUGNUMBER = '49233';
|
|
var summary = 'Testing numeric literals that begin with 0';
|
|
var statprefix = 'Testing ';
|
|
var quote = "'";
|
|
var status = new Array();
|
|
var actual = new Array();
|
|
var expect = new Array();
|
|
|
|
|
|
status[0]=showStatus('01')
|
|
actual[0]=01
|
|
expect[0]=1
|
|
|
|
status[1]=showStatus('07')
|
|
actual[1]=07
|
|
expect[1]=7
|
|
|
|
status[2]=showStatus('08')
|
|
actual[2]=08
|
|
expect[2]=8
|
|
|
|
status[3]=showStatus('09')
|
|
actual[3]=09
|
|
expect[3]=9
|
|
|
|
status[4]=showStatus('010')
|
|
actual[4]=010
|
|
expect[4]=8
|
|
|
|
status[5]=showStatus('017')
|
|
actual[5]=017
|
|
expect[5]=15
|
|
|
|
status[6]=showStatus('018')
|
|
actual[6]=018
|
|
expect[6]=18
|
|
|
|
status[7]=showStatus('019')
|
|
actual[7]=019
|
|
expect[7]=19
|
|
|
|
status[8]=showStatus('079')
|
|
actual[8]=079
|
|
expect[8]=79
|
|
|
|
status[9]=showStatus('0079')
|
|
actual[9]=0079
|
|
expect[9]=79
|
|
|
|
status[10]=showStatus('099')
|
|
actual[10]=099
|
|
expect[10]=99
|
|
|
|
status[11]=showStatus('0099')
|
|
actual[11]=0099
|
|
expect[11]=99
|
|
|
|
status[12]=showStatus('000000000077')
|
|
actual[12]=000000000077
|
|
expect[12]=63
|
|
|
|
status[13]=showStatus('000000000078')
|
|
actual[13]=000000000078
|
|
expect[13]=78
|
|
|
|
status[14]=showStatus('0000000000770000')
|
|
actual[14]=0000000000770000
|
|
expect[14]=258048
|
|
|
|
status[15]=showStatus('0000000000780000')
|
|
actual[15]=0000000000780000
|
|
expect[15]=780000
|
|
|
|
status[16]=showStatus('0765432198')
|
|
actual[16]=0765432198
|
|
expect[16]=765432198
|
|
|
|
status[17]=showStatus('00076543219800')
|
|
actual[17]=00076543219800
|
|
expect[17]=76543219800
|
|
|
|
status[18]=showStatus('0000001001007')
|
|
actual[18]=0000001001007
|
|
expect[18]=262663
|
|
|
|
status[19]=showStatus('0000001001009')
|
|
actual[19]=0000001001009
|
|
expect[19]=1001009
|
|
|
|
status[20]=showStatus('070')
|
|
actual[20]=070
|
|
expect[20]=56
|
|
|
|
status[21]=showStatus('080')
|
|
actual[21]=080
|
|
expect[21]=80
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
test();
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
|
|
|
function showStatus(msg)
|
|
{
|
|
return (statprefix + quote + msg + quote);
|
|
}
|
|
|
|
|
|
function test()
|
|
{
|
|
enterFunc ('test');
|
|
printBugNumber(BUGNUMBER);
|
|
printStatus (summary);
|
|
|
|
|
|
for (i=0; i !=status.length; i++)
|
|
{
|
|
reportCompare (expect[i], actual[i], status[i]);
|
|
}
|
|
|
|
exitFunc ('test');
|
|
}
|