JE

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

0.052   5 December, 2010
        Bug fix:  The return value of JE::LValue->can can now be used
        and will delegate properly to the referent.
        Test fix:  t/parse08-regexps.t  has been fixed to  work  with
        the new (?^u:...)  stringification of internally-UTF8 regular
        expressions in perl 5.13.8.

0.051   10 October, 2010
        Bug fix:  On DragonFly BSD,  exp(Infinity) and exp(-Infinity)
        now correctly return Infinity and 0, respectively, instead of
        NaN (I hope).

0.050   3 October, 2010
        • Fix t/parse08-regexps.t to work with the new (?^...) syntax
          in perl 5.13.5.
        • constant::lexical is no longer required.

0.049   20 June, 2010
        Bug fix: String.prototype.indexOf no longer dies if the start-
        ing position is greater than the length  of  the  string  and
        perl was built with -DDEBUGGING. Thanks to Jurgen Weigert for

Changes  view on Meta::CPAN

          rounded to.
        • toExponential  used always to assume that it was passed a 0
          as its only argument.
        • Various fixes for toPrecision:
          • It no longer dies with non-zero numbers between 0  and  1
            or negative numbers when passed an argument.
          • It no longer leaves an extra  trailing  zero  when  using
            exponential notation.
          • It  now  always  includes  a  decimal  point  in  exponen-
            tial notation.
        • Math.sqrt(-Infinity) now returns NaN, not Infinity.
        • setMinutes no longer identifies itself as setHours  when it
          dies  (‘setHours cannot be called on an object of type...’).
        • I must have been half asleep when I re-read  the  spec  for
          character classes in July last year.  I’ve now reverted the
          change to /[]/, so it is once more equivalent to /(?!)/, in
          accordance with the spec (which 0.022 wasn’t).
        • Math.atan2 with two infinite arguments now works on Windows.
        • Math.pow(NaN,0) now works on Windows.

0.042   8 November, 2009
        New feature:  We extend ECMAScript by treating hyphens in reg-
        exp character classes that are  adjacent  to  \d,  \s  or  \w
        always as literal hyphens and  no  longer  as  syntax  errors
        (RT #51123).
        Bug fixes:
        • JE::Number’s id  method has been fixed such  that  ===  and
          isNaN  now recognise positive  NaN  as  NaN  on Windows (RT
          #51036).
        • Parsing long strings no longer causes  perl  5.8  to  crash
          on  Windows  (see  http://www.nntp.perl.org/group/perl.cpan
         .testers/2009/11/msg5881496.html).  I fixed this by  reïncor-
          porating part of Kevin Cameron’s code  (RT #49607)  that  I
          had simplified to make it faster.

0.041   1 November, 2009
        Bug fix:  The unwrap option to  bind_class  now unwraps array-
        like objects and custom wrappers (RT #50473).

Changes  view on Meta::CPAN

        work properly :-).  Specifically, <!-- to the end of the line
        is  now  ignored  in  cases where  a  <  operator  can  occur.

0.034   25 August, 2009
        New feature:  an ECMAScript-violating HTML  mode that ignores
        HTML comment delimiters (or, more precisely, treats them like
        //  [except that -->  has to be preceded by nothing but white-
        space on the same line]).
        Bug fixes:
        • Date  functions no longer  produce  warnings  in  bleadperl
          (5.11.0-to-be) when handling NaN values.
        • delete new String().length used to return true, even though
          it did not  delete  the  property.  Now  it  returns  false.
        • Number() with no args (and no ‘new’ keyword) used to return
          a number object containing 0 instead of just the  number  0.
        • The Math.SQRT2 property didn’t exist and Math.SQRT1_2  held
          the square root of two. (Oops!)
        • *All*  the  Math  functions used to return  number  objects
          instead of plain numbers.  I must have been asleep  when  I
          wrote those.

Changes  view on Meta::CPAN

        • If JE::Object::Function->new is called with no_proto => 1,
          the resulting function will now die when called as a  con-
          structor. This fixes an inconsistency with the spec.  for 
          all such built-in functions.
        • A string passed to  JE::Object’s  prop  method’s  autoload
          parameter is now evaluated in the package that called prop.
        Fixed bugs:
        • parseInt  has now been fixed to match the spec.  It used to
          return a string,  unless the return value was  0.  It  also
          used to behave unpredictably when  the  radix  was  out  of
          range,  instead of simply returning NaN.  It used always to
          return a positive number for radices other than  2,  8,  10
          and 16. And it used not to allow capital letters in numbers.
        • parseFloat used to produce 0 when fed a number  preceded  by
         \v or non-ASCII whitespace. It would emit warnings, too. This
          has been fixed.
        • isNaN and isFinite have now been fixed, so they return a boo-
          lean, rather than a string.
        • String.prototype.lastIndexOf now works.
        • The length property of functions is now a number,
          not a string.
        • parseInt, isNan, isFinite, decodeURI, decodeURIComponent,
          encodeURI and encodeURIComponent used to die when called
          with no args.
        • isFinite’s logic was flawed and probably would have failed
          on Windows and OpenBSD.  (I still don’t  know  whether  it
          works, or whether it even failed before; it just has a far

Changes  view on Meta::CPAN

          than  simple  conversion.  I've  fixed  it  and  written  a
          test script.
        - Corrected the bitshift operators such that numbers > 31 for
          the right operand now have % 32 applied, and are no  longer
          simply treated as 31.
        - Corrected JE::Null->to_boolean so it returns a JE::Boolean,
          not a JE::String.
        - Stopped surrogate escape sequences in string literals from
          producing warnings.
        - Corrected JE::Number's stringification overloading to match
          the stringification in JavaScript  (for NaN  and  Infinity)
        - A JE::Number that has a value of NaN now boolifies in  Perl
          as false, as in JavaScript.
        - Fixed the constructors for the various subclasses of Error,
          so that they no longer throw TypeErrors when called  ('new
          TypeError'  would actually cause the whole script to  die)
        - Corrected 'instanceof'  so it throws an error if its right
          operand is an object but not a function
        - Corrected the  'prototype'  properties of the various sub-
          classes of Error such that they now actually inherit from
          Error.prototype instead of directly from Object.prototype.
        - Fixed the << operator so it now works correctly on

Changes  view on Meta::CPAN

        - arguments.length is now a number, not a string
        - arguments objects are no longer given extra properties  cor-
          responding to the function's parameters if there aren't that
          many args.
        - Functions written in Perl that return  an  empty  list  now
          return 'undefined' to JS, instead of producing lots of warn-
          ings and dying.  In fact, they are called in scalar context
          now, rather than list context.
        - Fixed array literals so that elided elements do not exist.
          (Before, they would exist, but still be undefined.)
        - Fixed the bug that was causing isNaN to fail on OpenBSD.
        - Corrected the comma, assignment, conditional (? :), || and
          && operators so they no longer return lvalues.
        - Function.prototype.apply now puts its error in $@ when it
          dies. It used to leave $@ empty. It no longer dies when
          called with just one argument.
        - Fixed Array.prototype.toString and Array.prototype.
          toLocaleString such that they produce a sensible error mes-
          sage when invoked upon an object other than an array, rather
          than the nonsensical 'Can't locate object method "prop" via
          package "Object is not an Array"'

lib/JE.pm  view on Meta::CPAN

	$self->prop({
		name => 'URIError',
		autoload => 'require JE::Object::Error::URIError;
		             JE::Object::Error::URIError
		              ->_new_subclass_constructor($global)',
		dontenum => 1,
	});

	# E 15.1.1
	$self->prop({
		name      => 'NaN',
		value     => JE::Number->new($self, 'NaN'),
		dontenum  => 1,
		dontdel   => 1,
	});
	$self->prop({
		name      => 'Infinity',
		value     => JE::Number->new($self, 'Infinity'),
		dontenum  => 1,
		dontdel   => 1,
	});
	$self->prop({

lib/JE.pm  view on Meta::CPAN

					      Infinity
					    )
					  )
					/ox
					?  $1 : 'nan');
			},
		}),
		dontenum  => 1,
	});
	$self->prop({
		name  => 'isNaN',
		value => JE::Object::Function->new({
			scope  => $self,
			name   => 'isNaN',
			argnames => [qw/number/],
			no_proto => 1,
			function_args => ['args'],
			function => sub {
				JE::Boolean->new($self,
					!defined $_[0] ||
					shift->to_number->id eq 'num:nan');
			},
		}),
		dontenum  => 1,

lib/JE.pm  view on Meta::CPAN

  outta: {
      $j->eval('
          try { x = 1; outta_here() }
          finally { x = 2 }
      ');
  }
  print $j->{x}, "\n";

=item *

NaN and Infinity do not work properly on some Windows compilers.  32-bit
ActivePerl seems not to work, but I have been told 64-bit is OK.
Strawberry Perl works fine, which is what most people are using.

=back

=head2 Incompatibilities with ECMAScript...

...that are probably due to typos in the spec.

=over 4

lib/JE.pm  view on Meta::CPAN

12.6.3, step 1 should probably read 'If I<ExpressionNoIn> is not present,
go to step 4,' rather than 'If the first I<Expression> is not present, go
to step 4.'

=item *

The C<setTime> method of a Date object does what one would expect (it sets
the number of milliseconds stored in the Date object and returns that
number).
According to the obfuscated definition in the ECMAScript specification, it 
should always set it to NaN and return NaN.

I think I've found I<yet another> typo in the spec. In clause 15.9.5.27,
'Result(1)' and and 'Result(2)' are probably supposed to be 'Result(2)' and
'Result(3)', respectively.

=back

=head1 PREREQUISITES

perl 5.8.4 or higher

lib/JE/Code.pm  view on Meta::CPAN

import JE::Code 'add_line_number';
sub add_line_number;

BEGIN{*T = *JE::Code::T;}


#----------for reference------------#
#sub _to_int {
	# call to_number first
	# then...
	# NaN becomes 0
	# 0 and Infinity remain as they are
	# other nums are rounded towards zero ($_ <=> 0) * floor(abs)
#}

# Note that abs in ECMA-262
#sub _to_uint32 {
	# call to_number, then ...

	# return 0 for Nan, -?inf and 0
	# (round toward zero) % 2 ** 32

lib/JE/Number.pm  view on Meta::CPAN


use constant nan => sin 9**9**9;
use constant inf => 9**9**9;

use overload fallback => 1,
	'""' => sub {
		my $value = $_[0][0];
		$value ==   inf  ?  'Infinity' :
		$value == -+inf  ? '-Infinity' :
		$value == $value ? $value :
		'NaN'
	 },
	'0+'  => 'value',
	 bool =>  sub {
		my $value = $_[0][0];
		$value && $value == $value;
	 },
	'+'   => sub { $_[0]->value + $_[1] }, # ~~~ I shouldn’t need this,
	                                       #      but  perl’s  magic
	                                       #      auto-generation
	                                       #     isn’t so magic.

lib/JE/Number.pm  view on Meta::CPAN

}

sub to_string { # ~~~ I  need  to  find  out  whether Perl's  number
                #     stringification is consistent with E 9.8.1 for
                #     finite numbers.
	my $value = (my $self = shift)->[0];
	JE::String->_new($$self[1],
		$value ==   inf  ?  'Infinity' :
		$value == -(inf) ? '-Infinity' :
		$value == $value ? $value :
		'NaN'
	);
}

*to_number = \& to_primitive;

sub to_object {
	my $self = shift;
	JE::Object::Number->new($$self[1], $self);
}

lib/JE/Number.pm  view on Meta::CPAN

ECMAScript uses is system-dependent. If anyone requires IEEE 754 
compliancy,
a patch would be welcome. :-)

The C<new> method accepts a global (JE) object and a number as its 
two arguments. If the latter is an object with a C<to_number> method whose
return value isa JE::Number, that object's internal value
will be used. Otherwise the arg itself is used. (The precise details of
the behaviour of C<new> when the second arg is a object are subject to
change.) It is numified Perl-style,
so 'nancy' becomes NaN
and 'information' becomes Infinity.

The C<value> method produces a Perl scalar. The C<0+> numeric operator is
overloaded and produces the same.

Stringification and boolification are overloaded and produce the same
results as in JavaScript

The C<typeof> and C<class> methods produce the strings 'number' and 
'Number', respectively.

lib/JE/Object/Number.pm  view on Meta::CPAN

		autoload  => '
		  require "JE/Object/Number/maxvalue.pl";
		  $JE::Object::Number::min_finite
		',
		dontenum => 1,
		dontdel   => 1,
		readonly  => 1,
	});

	$f->prop({
		name  => 'NaN',
		value  => JE::Number->new($global, 'nan'),
		dontenum => 1,
		dontdel   => 1,
		readonly  => 1,
	});

	$f->prop({
		name  => 'NEGATIVE_INFINITY',
		value  => JE::Number->new($global, '-inf'),
		dontenum => 1,

lib/JE/Object/Number.pm  view on Meta::CPAN

	$places = ($places = int $places->to_number) == $places && $places;
}
else { $places = 0 }

$places < 0 and throw JE::Object::Error::RangeError->new($global,
	"Invalid number of decimal places: $places " .
	"(negative numbers not supported)"
);

my $num = $self->value;
$num == $num or return JE::String->_new($global, 'NaN');

abs $num >= 1000000000000000000000
	and return JE::String->_new($global, $num);
# ~~~ if/when JE::Number::to_string is rewritten, make this use the same
#    algorithm

# Deal with numbers ending with 5. perl (in Snow Leopard at least) rounds
# 30.125 down, whereas ECMAScript says that it should round up. (15.7.4.5:
# ‘Let  n  be an  integer  for  which  the  exact  mathematical  value  of
#  n ÷ 10^f – x is as close to zero as possible.  If there are two such n,

lib/JE/Object/Number.pm  view on Meta::CPAN

my $self = shift;
die JE::Object::Error::TypeError->new(
	$global, add_line_number
	"Argument to " .
	"Number.prototype. toExponential is not"
	. " a " .
	"Number object"
) unless $self->class eq 'Number';

my $num = $self->value;
$num == $num or return JE::String->_new($global, 'NaN');
abs $num == inf && return JE::String->_new($global,
	($num < 0 && '-') . 'Infinity');

my $places = shift;
if(defined $places) {
	$places
	 = 0+(($places = int $places->to_number) == $places) && $places;
}
else { $places = !1 }

lib/JE/Object/Number.pm  view on Meta::CPAN

my $self = shift;
die JE::Object::Error::TypeError->new(
	$global, add_line_number
	"Argument to " .
	"Number.prototype. toPrecision is not"
	. " a " .
	"Number object"
) unless $self->class eq 'Number';

my $num = $self->value;
$num == $num or return JE::String->_new($global, 'NaN');
abs $num == inf && return JE::String->_new($global,
	($num < 0 && '-') . 'Infinity');

my $prec = shift;
if(!defined $prec || $prec->id eq 'undef') {
	return JE::String->_new($global, $num);
# ~~~ if/when JE::Number::to_string is rewritten, make this use the same
#    algorithm
}

lib/JE/String.pm  view on Meta::CPAN

		      (?=[0-9]|\.[0-9]) [0-9]* (?:\.[0-9]*)?
		      (?:[Ee][+-]?[0-9]+)?
		        |
		      Infinity
		    )
		    $s
		  )?
		  \z
		/ox ? defined $1 ? $value : 0 :
		$value =~ /^$s   0[Xx] ([A-Fa-f0-9]+)   $s\z/ox ? hex $1 :
		'NaN'
	);
}

sub global { $_[0][2] }

sub taint {
	my $self = shift;
	tainted $self->[0] || tainted $self->[1] and return $self;
	my $alter_ego = [@$self];
	$alter_ego->[defined $alter_ego->[0] ? 0 : 1] .= shift();

lib/JE/Types.pod  view on Meta::CPAN

The last three are for internal use. 
  
=head1 PUBLIC API

=head2 Using JS Values as Scalars

Every JS data type can be used as a string, boolean or number.  It works
exactly as it does in JavaScript.  For example:

  $num = $je->eval('42');
  $num2 = $je->eval('NaN');
  print $num2; # prints NaN
  print 0+$num2; # prints nan or NaN, depending or your system
                 # (or something really weird on Windows).

  $zero_str = $je->eval("'0'");
  print "true" if $zero_str; # prints 'true'
  print "false" unless 0+$zero_str; # prints 'false'

  $false = $je->eval('false');
  print $false; # prints 'false'
  print "false" unless $false; # also prints 'false'

lib/JE/Undefined.pm  view on Meta::CPAN


sub new    { bless \do{my $thing = $_[1]}, $_[0] }
sub value  { undef }
*TO_JSON=*value;
sub typeof { 'undefined' }
sub id     { 'undef' }
sub primitive { 1 }
sub to_primitive { $_[0] }
sub to_boolean   { JE::Boolean->new(${+shift}, 0) }
sub to_string { JE::String->_new(${+shift}, 'undefined') };
sub to_number { JE::Number->new(${+shift}, 'NaN') }
sub global { ${$_[0]} }

return "undef";
__END__

=head1 SEE ALSO

=over 4

=item JE::Types

lib/JE/toperl.pl  view on Meta::CPAN

	$term eq 'n' ?
		$cx == cx_str ? (ret_str, '"null"') :
		$cx == cx_bool ? (ret_bool, 0) :
		$cx == cx_num ? (ret_num, 0) :
		( ret_rv, '$global->null')
	:
		$cx == cx_str ? (ret_str,
			$term ==  inf ? '"Infinity"' :
			$term ==-+inf ? '"-Infinity"':
			$term == $term?  $term :
			                '"NaN"'
		) :
		$cx == cx_bool ? (ret_bool, 0+($term && $term == $term)) :
		$cx == cx_num  ? (ret_num, $term ) :
		( ret_rv, _cached "JE'Number->new(\$global," . (
			$term == inf ? '"inf"' : $term == -+inf ? '"-inf"':
			$term == $term ? $term : '"nan"'
		 ) . ')', $term )
}


t/09-type-conversion.t  view on Meta::CPAN


defined $j->eval( <<'--end--' ) or die;

// ---------------------------------------------------
/* Tests 4-12: ToBoolean */

ok(!void 0 === true, 'undefined to boolean')
ok(!null  === true, 'null to boolean')
ok(!true === false, 'boolean to boolean')
ok(!0   === true,  '0 to boolean')
ok(!NaN === true,  'NaN to boolean')
ok(!1    === false, '1 to boolean')
ok(!''    === true,  'null string to boolean')
ok(!'false' === false, 'non-empty string to boolean')
ok(!{}       === false, 'object to boolean')

// ---------------------------------------------------
/* Tests 13-286: ToNumber */

ok(isNaN(+void 0), 'undefined to number')
ok(+null === 0,   'null to number')
ok(+true === 1,  'true to number')
ok(+false === 0, 'false to number')
ok(+0     === 0, 'number to number')

// string to number (ws stands for whitespace):
ok(+''                              === 0, 'empty string')
ok(+'\t  \f\v\r\n\u2028\u2029\u2002' === 0,    'ws')
ok(+' Infinity\t'                    === Infinity, 'ws Infinity ws')
ok(+'Infinity \n  '                 === Infinity,     'Infinity ws')

t/09-type-conversion.t  view on Meta::CPAN

ToInt32
Input		Output
----------------------
undefined	0
null		0
true		1
false		0
'a'		0
'3'		3
{}		0
NaN		0
+0		0
-0		0
inf		0
-inf		0
1		1
32.5		32
2147483648	-2147483648
3000000000	-1294967296
4000000000.23	-294967296
5000000000	705032704

t/09-type-conversion.t  view on Meta::CPAN

ToUInt32
Input		Output
----------------------
undefined	0
null		0
true		1
false		0
'a'		0
'3'		3
{}		0
NaN		0
+0		0
-0		0
inf		0
-inf		0
1		1
32.5		32
2147483648	2147483648
3000000000	3000000000
4000000000.23	4000000000
5000000000	705032704

t/09-type-conversion.t  view on Meta::CPAN

*/


// ---------------------------------------------------
/* Tests 287-295: ToString */

ok(''+void 0 === 'undefined', 'undefined to string')
ok(''+null  === 'null',      'null to string')
ok(''+true  === 'true',    'true to string')
ok(''+false === 'false',   'false to string')
ok(''+NaN    === 'NaN',     'NaN to string')
ok(''+0        === '0',       '0 to string')
ok(''+-0        === '0',       '-0 to string')
ok(''+-Infinity === '-Infinity', '-Infinity to string')
ok(''+Infinity  === 'Infinity',    'Infinity to string')
diag('TO DO: Write tests for number-to-string conversion')

// ---------------------------------------------------
/* Tests 296-301: ToObject */

Object.prototype.to_object = function() {

t/10.01-execution-context-definitions.t  view on Meta::CPAN

	'function declarations clobber the DontDelete attribute')
readonly = 100
ok(readonly == 100,
	'function declarations clobber the ReadOnly attribute')

function RegExp(){ return 'something' }
function RegExp(){ return 'else'      }
function Infinity(){}
function readonly(){}

eval('function NaN(){} function readonly2(){}')
ok(propertyIsEnumerable('NaN'), 'eval("function NaN...") removes DontEnum')
readonly2 = void 0;
ok(readonly2 === void 2,
	'eval("function readonly_var ...") removes ReadOnly attribute')
ok(delete NaN,	
	'eval("function NaN...") removes DontDelete attribute')

,function(thing){
	ok(!delete thing, 'params are undeleteable')
	eval('function thing(){}')
	ok(delete thing,
		'function(){eval("function ...")} removes the ' +
		'DontDelete attribute')
}()


t/11.01-primary-expressions.t  view on Meta::CPAN


// ===================================================
// 11.1.2 Identifiers
// ===================================================
// (identifier resolution is defined in 10.1.4)

/* Test 8 */

var error
try {
	NaN = 333
	eval('NaN = 323'),
	pfpf = 3289
	eval('onetoh = 389')
	function(a) {
		tht =3 
		a=  3
		eval('thteoe = 3; a = 1')
	}()
}
catch(e) { error = true }
ok(!error, 'The result of evalling an identifier is always an lvalue')

t/11.03-postfix.t  view on Meta::CPAN

# JS tests
defined $j->eval( <<'--end--' ) or die;

// ===================================================
// 11.3.1 ++
// ===================================================

/* Tests 4-11 */

x = void 0;
ok(isNaN(x++) && isNaN(x), 'undefined++')
x = null
ok(x++===0&&x===1,         'null++')
x = true
ok(x++===1&&x===2,         'true++')
x = false
ok(x++===0&&x===1,         'false++')
x = 'a'
ok(isNaN(x++) && isNaN(x), '"a"++')
x = '3'
ok(x++===3&&x===4,         '"3"++')
x = 4.2
ok(x++===4.2&&x===5.2,     '4.2++')
x = {}
ok(isNaN(x++) && isNaN(x), '{}++')


// ===================================================
// 11.3.2 --
// ===================================================

/* Tests 12-19 */

x = void 0;
ok(isNaN(x--) && isNaN(x), 'undefined--')
x = null
ok(x--===0&&x===-1,        'null--')
x = true
ok(x--===1&&x===0,         'true--')
x = false
ok(x--===0&&x===-1,        'false--')
x = 'a'
ok(isNaN(x--) && isNaN(x), '"a"--')
x = '3'
ok(x--===3&&x===2,         '"3"--')
x = 4.2
ok(x--===4.2&&x===3.2,     '4.2--')
x = {}
ok(isNaN(x--) && isNaN(x), '{}--')


--end--

t/11.04-unary.t  view on Meta::CPAN

ok(           typeof new new Function === 'object',  'typeof object')
ok(           typeof new Function       === 'function', 'typeof function')


// ===================================================
// 11.4.4 ++
// ===================================================

/* Tests 34-41 */

ok((x = void 0, isNaN(++x)  && isNaN(x)),  '++undefined')
ok((x = null,   ++x === 1   && x === 1),   '++null')
ok((x = true,   ++x === 2   && x === 2),   '++true')
ok((x = false,  ++x === 1   && x === 1),   '++false')
ok((x = 'a',    isNaN(++x)  && isNaN(x)),  '++"a"')
ok((x = '3',    ++x === 4   && x === 4),   '++"3"')
ok((x = 4.2,    ++x === 5.2 && x === 5.2), '++4.2')
ok((x = {},     isNaN(++x)  && isNaN(x)),  '++{}')


// ===================================================
// 11.4.5 --
// ===================================================

/* Tests 42-9 */

ok((x = void 0, isNaN(--x)         && isNaN(x)),         '--undefined')
ok((x = null,         --x === -1   &&       x === -1),   '--null')
ok((x = true,         --x ===  0   &&       x ===  0),   '--true')
ok((x = false,        --x === -1   &&       x === -1),   '--false')
ok((x = 'a',    isNaN(--x)         && isNaN(x)),         '--"a"')
ok((x = '3',          --x ===  2   &&       x ===  2),   '--"3"')
ok((x = 4.2,          --x ===  3.2 &&       x ===  3.2), '--4.2')
ok((x = {},     isNaN(--x)         && isNaN(x)),         '--{}')


// ===================================================
// 11.4.6 +
// ===================================================

/* Tests 50-7 */

ok(isNaN(+void 0),        '+undefined')
ok(      +null   === 0,   '+null')
ok(      +true   === 1,   '+true')
ok(      +false  === 0,   '+false')
ok(isNaN(+'a'),           '+"a"')
ok(      +'3.00' === 3,   '+"3.00"')
ok(      +4.2    === 4.2, '+4.2')
ok(isNaN(+{}),            '+{}')


// ===================================================
// 11.4.7 -
// ===================================================

/* Tests 58-66 */

ok(isNaN(-void 0),         '-undefined')
ok(      -null   ===  0,   '-null')
ok(      -true   === -1,   '-true')
ok(      -false  ===  0,   '-false')
ok(isNaN(-'a'),            '-"a"')
ok(      -"-5"   ===  5,   '-"-5"')
ok(      -4.2    === -4.2, '-4.2')
ok(isNaN(-{}),             '-{}')
ok(      - -5    ===  5,   '- -5')


// ===================================================
// 11.4.8 ~
// ===================================================

/* Tests 67-101 */

ok(~ undefined      === -1         , "~undefined"      )
ok(~ null           === -1         , "~null"           )
ok(~ true           === -2         , "~true"           )
ok(~ false          === -1         , "~false"          )
ok(~'a'             === -1         , "~'a'"            )
ok(~'3'             === -4         , "~'3'"            )
ok(~ {}             === -1         , "~{}"             )
ok(~ NaN            === -1         , "~NaN"            )
ok(~ 0              === -1         , "~0"              )
ok(~-0              === -1         , "~-0"             )
ok(~ Infinity       === -1         , "~Infinity"       )
ok(~-Infinity       === -1         , "~-Infinity"      )
ok(~ 1              === -2         , "~1"              )
ok(~ 32.5           === -33        , "~32.5"           )
ok(~ 2147483648     ===  2147483647, "~2147483648"     )
ok(~ 3000000000     ===  1294967295, "~3000000000"     )
ok(~ 4000000000.23  ===  294967295 , "~4000000000.23"  )
ok(~ 5000000000     === -705032705 , "~5000000000"     )

t/11.04-unary.t  view on Meta::CPAN

/* Tests 102-11 */

ok(!undefined === true , "!undefined")
ok(!null      === true , "!null"     )
ok(!true      === false, "!true"     )
ok(!false     === true , "!false"    )
ok(!''        === true , "!''"       )
ok(!"false"   === false, "!\"false\"")
ok(!0         === true , '!0'        )
ok(!1         === false, '!1'        )
ok(!NaN       === true , "!NaN"      )
ok(!{}        === false, "!{}"       )

--end--

t/11.05-multiplicative.t  view on Meta::CPAN


# JS tests
defined $j->eval( <<'--end--' ) or die;

// ===================================================
// 11.5.1 *
// ===================================================

/* Tests 5-14: *'s type conversion */

ok(isNaN(void 0 * 2), 'undefined * number')
ok(null   * 3 ===  0, 'null * number')
ok(true   * 3 ===  3, 'boolean * number')
ok('3.00' * 4 === 12, 'string * number')
ok(isNaN({} * 2),     'object * number')
ok(isNaN(2 * void 0), 'number * undefined')
ok(3 *  null  ===  0, 'number * null')
ok(3 *  true  ===  3, 'number * boolean')
ok(4 * '3.00' === 12, 'number * string')
ok(isNaN(2 * {}),     'number * object')


// ---------------------------------------------------
/* Tests 15-36: number * number */

ok(isNaN(NaN  * 322),                   'NaN * anything')
ok(isNaN(2389 * NaN),                   'anything * NaN')
ok(isNaN(NaN  * NaN),                   'NaN * NaN')
ok( 1 *  3 ===  3,                      '+ * +')
ok(-1 *  3 === -3,                      '- * +')
ok( 1 * -3 === -3,                      '+ * -')
ok(-1 * -3 ===  3,                      '+ * +')
// ~~~ need to add tests for ±Infinity * -0
ok(isNaN( Infinity * 0),                'inf * 0')
ok(isNaN(-Infinity * 0),                '-inf * 0')
ok( Infinity *  Infinity ===  Infinity, 'inf * inf')
ok(-Infinity * -Infinity ===  Infinity, '-inf * -inf')
ok(-Infinity *  Infinity === -Infinity, '-inf * inf')
ok( Infinity * -Infinity === -Infinity, 'inf * -inf')
ok( Infinity *  3.54     ===  Infinity, 'inf * +finite')
ok(-Infinity * -3.54     ===  Infinity, '-inf * -finite')
ok(-Infinity *  3.54     === -Infinity, '-inf * +finite')
ok( Infinity * -3.54     === -Infinity, 'inf * -finite')
// ~~~ need to confirm that multiplication is IEEE754-compliant and
//     supports gradual underflow, whatever that is

t/11.05-multiplicative.t  view on Meta::CPAN

expr = 1
is(expr * (expr = 2), 2, 'lvalue * expr modifying the lvalue');


// ===================================================
// 11.5.2 /
// ===================================================

/* Tests 38-47: /'s type conversion */

ok(isNaN(void 0 / 2),       'undefined / number')
ok(null   / 3 ===  0,       'null / number')
ok(true   / 2 === .5,       'boolean / number')
ok('3.00' / 4 === .75,      'string / number')
ok(isNaN({} / 2),           'object / number')
ok(isNaN(2 / void 0),       'number / undefined')
ok(3 /  null  === Infinity, 'number / null')
ok(3 /  true  ===  3,       'number / boolean')
ok(3 / '4.00' === .75,      'number / string')
ok(isNaN(2 / {}),           'number / object')


// ---------------------------------------------------
/* Tests 48-78: number / number */

// The tests that use '=== -0' are equivalent to '=== 0' in JS. If I ever
// get round to implementing -0, I need to come up with a way to test for
// it.

ok(isNaN(NaN  / 322),               'NaN / anything')
ok(isNaN(2389 / NaN),               'anything / NaN')
ok(isNaN(NaN  / NaN),               'NaN / NaN')
ok( 1 /  2 ===  .5,                 '+ / +')
ok(-1 /  2 === -.5,                 '- / +')
ok( 1 / -2 === -.5,                 '+ / -')
ok(-1 / -2 ===  .5,                 '+ / +')
ok(isNaN( Infinity /  Infinity),    'inf / inf')
ok(isNaN(-Infinity / -Infinity),    '-inf / -inf')
ok(isNaN(-Infinity /  Infinity),    '-inf / inf')
ok(isNaN( Infinity / -Infinity),    'inf / -inf')
// ~~~ need to add tests for ±Infinity / -0 and ±0 / ±0
ok( Infinity /  0    ===  Infinity, 'inf / 0')
ok(-Infinity /  0    === -Infinity, '-inf / 0')
ok( Infinity /  3.54 ===  Infinity, 'inf / +finite')
ok(-Infinity / -3.54 ===  Infinity, '-inf / -finite')
ok(-Infinity /  3.54 === -Infinity, '-inf / +finite')
ok( Infinity / -3.54 === -Infinity, 'inf / -finite')
ok( 3.54 /  Infinity ===  0,        '+finite / inf')
ok(-3.54 / -Infinity ===  0,        '-finity / -inf')
ok( 3.54 / -Infinity === -0,        '+finite / -inf')
ok(-3.54 /  Infinity === -0,        '-finite / inf')
ok(isNaN(0 / 0),                    '0 / 0')
ok( 0    /  3.54     ===  0,        '0 / +')
ok( 0    / -3.54     === -0,        '0 / -')
ok( 3.54 /  0        ===  Infinity, '+finite / 0')
ok(-3.54 /  0        === -Infinity, '-finite / 0')
// ~~~ need to confirm that divison is IEEE754-compliant and
//     supports gradual underflow, whatever that is
ok(3/4.8 === .625, '3/4.8')

try{
	skip('not yet IEEE754-compliant', 4);

t/11.05-multiplicative.t  view on Meta::CPAN

expr = 4
is(expr / (expr = 2), 2, 'lvalue / expr modifying the lvalue');


// ===================================================
// 11.5.3 %
// ===================================================

/* Tests 70-89: %'s type conversion */

ok(isNaN(void 0 % 2), 'undefined % number')
ok(null   % 3 === 0,  'null % number')
ok(true   % 2 === 1,  'boolean % number')
ok('3.00' % 4 === 3,  'string % number')
ok(isNaN({} % 2),     'object % number')
ok(isNaN(2 % void 0), 'number % undefined')
ok(isNaN(3 % null),   'number % null')
ok(3 %  true  === 0,  'number % boolean')
ok(3 % '4.00' === 3,  'number % string')
ok(isNaN(2 % {}),     'number % object')


// ---------------------------------------------------
/* Tests 90-107: number % number */

ok(isNaN(NaN  % 322),               'NaN % anything')
ok(isNaN(2389 % NaN),               'anything % NaN')
ok(isNaN(NaN  % NaN),               'NaN % NaN')
ok( 12.5 %  5 ===  2.5,             '+ % +')
ok(-12.5 %  5 === -2.5,             '- % +')
ok( 12.5 % -5 ===  2.5,             '+ % -')
ok(-12.5 % -5 === -2.5,             '+ % +')
ok(isNaN( Infinity % 354),          'inf % anything')
ok(isNaN(-Infinity % 222),          '-inf % anything')
ok(isNaN( 23892    % 0),            'anything % 0')
ok(isNaN( Infinity % 0),            'inf % 0')
ok(isNaN(-Infinity % 0),            '-inf % 0')
ok( 3.54 %  Infinity ===  3.54,     '+finite % inf')
ok(-3.54 % -Infinity === -3.54,     '-finite % -inf')
ok( 3.54 % -Infinity ===  3.54,     '+finite % -inf')
ok(-3.54 %  Infinity === -3.54,     '-finite % inf')
ok( 0    %  3.54     ===  0,        '0 % +')
ok(-0    % -3.54     === -0,        '0 % -')

// ---------------------------------------------------
/* Test 108 */
expr = 4

t/11.06-additive.t  view on Meta::CPAN

# Tests 2-4: Bind some functions
isa_ok $j->new_function( ok  => \&ok   ), 'JE::Object::Function';
isa_ok $j->new_function( diag => \&diag ), 'JE::Object::Function';
isa_ok $j->new_function( skip  => \&skip ), 'JE::Object::Function';
$j->new_function(is=>\&is);


# JS tests
defined $j->eval( <<'--end--' ) or die;

function is_nan(n) { // sees whether something is *identical* to NaN
	return typeof n == 'number' && isNaN(n);
}

// ===================================================
// 11.6.1 +
// ===================================================

/* Tests 5-53: +'s type conversion (also takes care of string + string) */

ok(is_nan(void 0 + void 0),                 "undefined + undefined")
ok(is_nan(void 0 + null),                      "undefined + null")

t/11.06-additive.t  view on Meta::CPAN

ok(new Number(34.2) +  73        === 107.2,      "number object + number")
ok(new Number(34.2) +  {}           === '34.2[object Object]',
	"number object + object")
ok(new Number(34.2) +  new Number(34.2) === 68.4,
	"number object + number object")


// ---------------------------------------------------
/* Tests 54-73: number + number (11.6.3) */

ok(is_nan( NaN      + 322),             'NaN + anything')
ok(is_nan( 2389     + NaN),             'anything + NaN')
ok(is_nan( NaN      + NaN),             'NaN + NaN')
ok(is_nan(-Infinity +  Infinity),       '-inf + inf')
ok(is_nan( Infinity + -Infinity),       'inf + -inf')
ok( Infinity +  Infinity ===  Infinity, 'inf + inf')
ok(-Infinity + -Infinity === -Infinity, '-inf + -inf')
ok( Infinity +  3.54     ===  Infinity, 'inf + +finite')
ok(-Infinity + -3.54     === -Infinity, '-inf + -finite')
ok(-Infinity +  3.54     === -Infinity, '-inf + +finite')
ok( Infinity + -3.54     ===  Infinity, 'inf + -finite')
// ~~~ need to add tests for ±0 + ±0
ok( 0        +  3        ===  3,        '+0 + +')

t/11.06-additive.t  view on Meta::CPAN

ok(is_nan(2 - void 0), 'number - undefined')
ok(3 -  null  ===  3,  'number - null')
ok(3 -  true  ===  2,  'number - boolean')
ok(3 - '4.00' === -1,  'number - string')
ok(is_nan(2 - {}),     'number - object')


// ---------------------------------------------------
/* Tests 85-104: number - number (11.6.3) */

ok(is_nan( NaN      - 322),             'NaN - anything')
ok(is_nan( 2389     - NaN),             'anything - NaN')
ok(is_nan( NaN      - NaN),             'NaN - NaN')
ok(is_nan(-Infinity - -Infinity),       '-inf - inf')
ok(is_nan( Infinity -  Infinity),       'inf - -inf')
ok( Infinity - -Infinity ===  Infinity, 'inf - inf')
ok(-Infinity -  Infinity === -Infinity, '-inf - -inf')
ok( Infinity - -3.54     ===  Infinity, 'inf - -finite')
ok(-Infinity -  3.54     === -Infinity, '-inf - -finite')
ok(-Infinity - -3.54     === -Infinity, '-inf - -finite')
ok( Infinity -  3.54     ===  Infinity, 'inf - -finite')
// ~~~ need to add tests for ±0 - ±0
ok( 0        - -3        ===  3,        '-0 - -')

t/11.07-bitshift.t  view on Meta::CPAN

ok( new Number(34.2) <<  true    === 68,    "number object << boolean")
ok( new Number(34.2) << "string" === 34,    "number object << string")
ok( new Number(34.2) <<  73      === 17408, "number object << number")
ok( new Number(34.2) <<  {}      === 34,    "number object << object")
ok( new Number(34.2) <<  new Number(34.2) === 136,
	"number object << number object")

/* Tests 52-892: number << number */

n2n = [
	[NaN, NaN, 0],
	[NaN, +0, 0],
	[NaN, -0, 0],
	[NaN, Infinity, 0],
	[NaN, -Infinity, 0],
	[NaN, 1, 0],
	[NaN, 32.5, 0],
	[NaN, 2147483648, 0],
	[NaN, 3000000000, 0],
	[NaN, 4000000000.23, 0],
	[NaN, 5000000000, 0],
	[NaN, 4294967296, 0],
	[NaN, 4294967298.479, 0],
	[NaN, 6442450942, 0],
	[NaN, 6442450943.674, 0],
	[NaN, 6442450944, 0],
	[NaN, 6442450945, 0],
	[NaN, 6442450946.74, 0],
	[NaN, -1, 0],
	[NaN, -32.5, 0],
	[NaN, -3000000000, 0],
	[NaN, -4000000000.23, 0],
	[NaN, -5000000000, 0],
	[NaN, -4294967298.479, 0],
	[NaN, -6442450942, 0],
	[NaN, -6442450943.674, 0],
	[NaN, -6442450944, 0],
	[NaN, -6442450945, 0],
	[NaN, -6442450946.74, 0],
	[+0, NaN, 0],
	[+0, +0, 0],
	[+0, -0, 0],
	[+0, Infinity, 0],
	[+0, -Infinity, 0],
	[+0, 1, 0],
	[+0, 32.5, 0],
	[+0, 2147483648, 0],
	[+0, 3000000000, 0],
	[+0, 4000000000.23, 0],
	[+0, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[+0, -32.5, 0],
	[+0, -3000000000, 0],
	[+0, -4000000000.23, 0],
	[+0, -5000000000, 0],
	[+0, -4294967298.479, 0],
	[+0, -6442450942, 0],
	[+0, -6442450943.674, 0],
	[+0, -6442450944, 0],
	[+0, -6442450945, 0],
	[+0, -6442450946.74, 0],
	[-0, NaN, 0],
	[-0, +0, 0],
	[-0, -0, 0],
	[-0, Infinity, 0],
	[-0, -Infinity, 0],
	[-0, 1, 0],
	[-0, 32.5, 0],
	[-0, 2147483648, 0],
	[-0, 3000000000, 0],
	[-0, 4000000000.23, 0],
	[-0, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[-0, -32.5, 0],
	[-0, -3000000000, 0],
	[-0, -4000000000.23, 0],
	[-0, -5000000000, 0],
	[-0, -4294967298.479, 0],
	[-0, -6442450942, 0],
	[-0, -6442450943.674, 0],
	[-0, -6442450944, 0],
	[-0, -6442450945, 0],
	[-0, -6442450946.74, 0],
	[Infinity, NaN, 0],
	[Infinity, +0, 0],
	[Infinity, -0, 0],
	[Infinity, Infinity, 0],
	[Infinity, -Infinity, 0],
	[Infinity, 1, 0],
	[Infinity, 32.5, 0],
	[Infinity, 2147483648, 0],
	[Infinity, 3000000000, 0],
	[Infinity, 4000000000.23, 0],
	[Infinity, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[Infinity, -32.5, 0],
	[Infinity, -3000000000, 0],
	[Infinity, -4000000000.23, 0],
	[Infinity, -5000000000, 0],
	[Infinity, -4294967298.479, 0],
	[Infinity, -6442450942, 0],
	[Infinity, -6442450943.674, 0],
	[Infinity, -6442450944, 0],
	[Infinity, -6442450945, 0],
	[Infinity, -6442450946.74, 0],
	[-Infinity, NaN, 0],
	[-Infinity, +0, 0],
	[-Infinity, -0, 0],
	[-Infinity, Infinity, 0],
	[-Infinity, -Infinity, 0],
	[-Infinity, 1, 0],
	[-Infinity, 32.5, 0],
	[-Infinity, 2147483648, 0],
	[-Infinity, 3000000000, 0],
	[-Infinity, 4000000000.23, 0],
	[-Infinity, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[-Infinity, -32.5, 0],
	[-Infinity, -3000000000, 0],
	[-Infinity, -4000000000.23, 0],
	[-Infinity, -5000000000, 0],
	[-Infinity, -4294967298.479, 0],
	[-Infinity, -6442450942, 0],
	[-Infinity, -6442450943.674, 0],
	[-Infinity, -6442450944, 0],
	[-Infinity, -6442450945, 0],
	[-Infinity, -6442450946.74, 0],
	[1, NaN, 1],
	[1, +0, 1],
	[1, -0, 1],
	[1, Infinity, 1],
	[1, -Infinity, 1],
	[1, 1, 2],
	[1, 32.5, 1],
	[1, 2147483648, 1],
	[1, 3000000000, 1],
	[1, 4000000000.23, 1],
	[1, 5000000000, 1],

t/11.07-bitshift.t  view on Meta::CPAN

	[1, -32.5, 1],
	[1, -3000000000, 1],
	[1, -4000000000.23, 1],
	[1, -5000000000, 1],
	[1, -4294967298.479, 1073741824],
	[1, -6442450942, 4],
	[1, -6442450943.674, 2],
	[1, -6442450944, 1],
	[1, -6442450945, -2147483648],
	[1, -6442450946.74, 1073741824],
	[32.5, NaN, 32],
	[32.5, +0, 32],
	[32.5, -0, 32],
	[32.5, Infinity, 32],
	[32.5, -Infinity, 32],
	[32.5, 1, 64],
	[32.5, 32.5, 32],
	[32.5, 2147483648, 32],
	[32.5, 3000000000, 32],
	[32.5, 4000000000.23, 32],
	[32.5, 5000000000, 32],

t/11.07-bitshift.t  view on Meta::CPAN

	[32.5, -32.5, 32],
	[32.5, -3000000000, 32],
	[32.5, -4000000000.23, 32],
	[32.5, -5000000000, 32],
	[32.5, -4294967298.479, 0],
	[32.5, -6442450942, 128],
	[32.5, -6442450943.674, 64],
	[32.5, -6442450944, 32],
	[32.5, -6442450945, 0],
	[32.5, -6442450946.74, 0],
	[2147483648, NaN, -2147483648],
	[2147483648, +0, -2147483648],
	[2147483648, -0, -2147483648],
	[2147483648, Infinity, -2147483648],
	[2147483648, -Infinity, -2147483648],
	[2147483648, 1, 0],
	[2147483648, 32.5, -2147483648],
	[2147483648, 2147483648, -2147483648],
	[2147483648, 3000000000, -2147483648],
	[2147483648, 4000000000.23, -2147483648],
	[2147483648, 5000000000, -2147483648],

t/11.07-bitshift.t  view on Meta::CPAN

	[2147483648, -32.5, -2147483648],
	[2147483648, -3000000000, -2147483648],
	[2147483648, -4000000000.23, -2147483648],
	[2147483648, -5000000000, -2147483648],
	[2147483648, -4294967298.479, 0],
	[2147483648, -6442450942, 0],
	[2147483648, -6442450943.674, 0],
	[2147483648, -6442450944, -2147483648],
	[2147483648, -6442450945, 0],
	[2147483648, -6442450946.74, 0],
	[3000000000, NaN, -1294967296],
	[3000000000, +0, -1294967296],
	[3000000000, -0, -1294967296],
	[3000000000, Infinity, -1294967296],
	[3000000000, -Infinity, -1294967296],
	[3000000000, 1, 1705032704],
	[3000000000, 32.5, -1294967296],
	[3000000000, 2147483648, -1294967296],
	[3000000000, 3000000000, -1294967296],
	[3000000000, 4000000000.23, -1294967296],
	[3000000000, 5000000000, -1294967296],

t/11.07-bitshift.t  view on Meta::CPAN

	[3000000000, -32.5, -1294967296],
	[3000000000, -3000000000, -1294967296],
	[3000000000, -4000000000.23, -1294967296],
	[3000000000, -5000000000, -1294967296],
	[3000000000, -4294967298.479, 0],
	[3000000000, -6442450942, -884901888],
	[3000000000, -6442450943.674, 1705032704],
	[3000000000, -6442450944, -1294967296],
	[3000000000, -6442450945, 0],
	[3000000000, -6442450946.74, 0],
	[4000000000.23, NaN, -294967296],
	[4000000000.23, +0, -294967296],
	[4000000000.23, -0, -294967296],
	[4000000000.23, Infinity, -294967296],
	[4000000000.23, -Infinity, -294967296],
	[4000000000.23, 1, -589934592],
	[4000000000.23, 32.5, -294967296],
	[4000000000.23, 2147483648, -294967296],
	[4000000000.23, 3000000000, -294967296],
	[4000000000.23, 4000000000.23, -294967296],
	[4000000000.23, 5000000000, -294967296],

t/11.07-bitshift.t  view on Meta::CPAN

	[4000000000.23, -32.5, -294967296],
	[4000000000.23, -3000000000, -294967296],
	[4000000000.23, -4000000000.23, -294967296],
	[4000000000.23, -5000000000, -294967296],
	[4000000000.23, -4294967298.479, 0],
	[4000000000.23, -6442450942, -1179869184],
	[4000000000.23, -6442450943.674, -589934592],
	[4000000000.23, -6442450944, -294967296],
	[4000000000.23, -6442450945, 0],
	[4000000000.23, -6442450946.74, 0],
	[5000000000, NaN, 705032704],
	[5000000000, +0, 705032704],
	[5000000000, -0, 705032704],
	[5000000000, Infinity, 705032704],
	[5000000000, -Infinity, 705032704],
	[5000000000, 1, 1410065408],
	[5000000000, 32.5, 705032704],
	[5000000000, 2147483648, 705032704],
	[5000000000, 3000000000, 705032704],
	[5000000000, 4000000000.23, 705032704],
	[5000000000, 5000000000, 705032704],

t/11.07-bitshift.t  view on Meta::CPAN

	[5000000000, -32.5, 705032704],
	[5000000000, -3000000000, 705032704],
	[5000000000, -4000000000.23, 705032704],
	[5000000000, -5000000000, 705032704],
	[5000000000, -4294967298.479, 0],
	[5000000000, -6442450942, -1474836480],
	[5000000000, -6442450943.674, 1410065408],
	[5000000000, -6442450944, 705032704],
	[5000000000, -6442450945, 0],
	[5000000000, -6442450946.74, 0],
	[4294967296, NaN, 0],
	[4294967296, +0, 0],
	[4294967296, -0, 0],
	[4294967296, Infinity, 0],
	[4294967296, -Infinity, 0],
	[4294967296, 1, 0],
	[4294967296, 32.5, 0],
	[4294967296, 2147483648, 0],
	[4294967296, 3000000000, 0],
	[4294967296, 4000000000.23, 0],
	[4294967296, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[4294967296, -32.5, 0],
	[4294967296, -3000000000, 0],
	[4294967296, -4000000000.23, 0],
	[4294967296, -5000000000, 0],
	[4294967296, -4294967298.479, 0],
	[4294967296, -6442450942, 0],
	[4294967296, -6442450943.674, 0],
	[4294967296, -6442450944, 0],
	[4294967296, -6442450945, 0],
	[4294967296, -6442450946.74, 0],
	[4294967298.479, NaN, 2],
	[4294967298.479, +0, 2],
	[4294967298.479, -0, 2],
	[4294967298.479, Infinity, 2],
	[4294967298.479, -Infinity, 2],
	[4294967298.479, 1, 4],
	[4294967298.479, 32.5, 2],
	[4294967298.479, 2147483648, 2],
	[4294967298.479, 3000000000, 2],
	[4294967298.479, 4000000000.23, 2],
	[4294967298.479, 5000000000, 2],

t/11.07-bitshift.t  view on Meta::CPAN

	[4294967298.479, -32.5, 2],
	[4294967298.479, -3000000000, 2],
	[4294967298.479, -4000000000.23, 2],
	[4294967298.479, -5000000000, 2],
	[4294967298.479, -4294967298.479, -2147483648],
	[4294967298.479, -6442450942, 8],
	[4294967298.479, -6442450943.674, 4],
	[4294967298.479, -6442450944, 2],
	[4294967298.479, -6442450945, 0],
	[4294967298.479, -6442450946.74, -2147483648],
	[6442450942, NaN, 2147483646],
	[6442450942, +0, 2147483646],
	[6442450942, -0, 2147483646],
	[6442450942, Infinity, 2147483646],
	[6442450942, -Infinity, 2147483646],
	[6442450942, 1, -4],
	[6442450942, 32.5, 2147483646],
	[6442450942, 2147483648, 2147483646],
	[6442450942, 3000000000, 2147483646],
	[6442450942, 4000000000.23, 2147483646],
	[6442450942, 5000000000, 2147483646],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450942, -32.5, 2147483646],
	[6442450942, -3000000000, 2147483646],
	[6442450942, -4000000000.23, 2147483646],
	[6442450942, -5000000000, 2147483646],
	[6442450942, -4294967298.479, -2147483648],
	[6442450942, -6442450942, -8],
	[6442450942, -6442450943.674, -4],
	[6442450942, -6442450944, 2147483646],
	[6442450942, -6442450945, 0],
	[6442450942, -6442450946.74, -2147483648],
	[6442450943.674, NaN, 2147483647],
	[6442450943.674, +0, 2147483647],
	[6442450943.674, -0, 2147483647],
	[6442450943.674, Infinity, 2147483647],
	[6442450943.674, -Infinity, 2147483647],
	[6442450943.674, 1, -2],
	[6442450943.674, 32.5, 2147483647],
	[6442450943.674, 2147483648, 2147483647],
	[6442450943.674, 3000000000, 2147483647],
	[6442450943.674, 4000000000.23, 2147483647],
	[6442450943.674, 5000000000, 2147483647],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450943.674, -32.5, 2147483647],
	[6442450943.674, -3000000000, 2147483647],
	[6442450943.674, -4000000000.23, 2147483647],
	[6442450943.674, -5000000000, 2147483647],
	[6442450943.674, -4294967298.479, -1073741824],
	[6442450943.674, -6442450942, -4],
	[6442450943.674, -6442450943.674, -2],
	[6442450943.674, -6442450944, 2147483647],
	[6442450943.674, -6442450945, -2147483648],
	[6442450943.674, -6442450946.74, -1073741824],
	[6442450944, NaN, -2147483648],
	[6442450944, +0, -2147483648],
	[6442450944, -0, -2147483648],
	[6442450944, Infinity, -2147483648],
	[6442450944, -Infinity, -2147483648],
	[6442450944, 1, 0],
	[6442450944, 32.5, -2147483648],
	[6442450944, 2147483648, -2147483648],
	[6442450944, 3000000000, -2147483648],
	[6442450944, 4000000000.23, -2147483648],
	[6442450944, 5000000000, -2147483648],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450944, -32.5, -2147483648],
	[6442450944, -3000000000, -2147483648],
	[6442450944, -4000000000.23, -2147483648],
	[6442450944, -5000000000, -2147483648],
	[6442450944, -4294967298.479, 0],
	[6442450944, -6442450942, 0],
	[6442450944, -6442450943.674, 0],
	[6442450944, -6442450944, -2147483648],
	[6442450944, -6442450945, 0],
	[6442450944, -6442450946.74, 0],
	[6442450945, NaN, -2147483647],
	[6442450945, +0, -2147483647],
	[6442450945, -0, -2147483647],
	[6442450945, Infinity, -2147483647],
	[6442450945, -Infinity, -2147483647],
	[6442450945, 1, 2],
	[6442450945, 32.5, -2147483647],
	[6442450945, 2147483648, -2147483647],
	[6442450945, 3000000000, -2147483647],
	[6442450945, 4000000000.23, -2147483647],
	[6442450945, 5000000000, -2147483647],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450945, -32.5, -2147483647],
	[6442450945, -3000000000, -2147483647],
	[6442450945, -4000000000.23, -2147483647],
	[6442450945, -5000000000, -2147483647],
	[6442450945, -4294967298.479, 1073741824],
	[6442450945, -6442450942, 4],
	[6442450945, -6442450943.674, 2],
	[6442450945, -6442450944, -2147483647],
	[6442450945, -6442450945, -2147483648],
	[6442450945, -6442450946.74, 1073741824],
	[6442450946.74, NaN, -2147483646],
	[6442450946.74, +0, -2147483646],
	[6442450946.74, -0, -2147483646],
	[6442450946.74, Infinity, -2147483646],
	[6442450946.74, -Infinity, -2147483646],
	[6442450946.74, 1, 4],
	[6442450946.74, 32.5, -2147483646],
	[6442450946.74, 2147483648, -2147483646],
	[6442450946.74, 3000000000, -2147483646],
	[6442450946.74, 4000000000.23, -2147483646],
	[6442450946.74, 5000000000, -2147483646],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450946.74, -32.5, -2147483646],
	[6442450946.74, -3000000000, -2147483646],
	[6442450946.74, -4000000000.23, -2147483646],
	[6442450946.74, -5000000000, -2147483646],
	[6442450946.74, -4294967298.479, -2147483648],
	[6442450946.74, -6442450942, 8],
	[6442450946.74, -6442450943.674, 4],
	[6442450946.74, -6442450944, -2147483646],
	[6442450946.74, -6442450945, 0],
	[6442450946.74, -6442450946.74, -2147483648],
	[-1, NaN, -1],
	[-1, +0, -1],
	[-1, -0, -1],
	[-1, Infinity, -1],
	[-1, -Infinity, -1],
	[-1, 1, -2],
	[-1, 32.5, -1],
	[-1, 2147483648, -1],
	[-1, 3000000000, -1],
	[-1, 4000000000.23, -1],
	[-1, 5000000000, -1],

t/11.07-bitshift.t  view on Meta::CPAN

	[-1, -32.5, -1],
	[-1, -3000000000, -1],
	[-1, -4000000000.23, -1],
	[-1, -5000000000, -1],
	[-1, -4294967298.479, -1073741824],
	[-1, -6442450942, -4],
	[-1, -6442450943.674, -2],
	[-1, -6442450944, -1],
	[-1, -6442450945, -2147483648],
	[-1, -6442450946.74, -1073741824],
	[-32.5, NaN, -32],
	[-32.5, +0, -32],
	[-32.5, -0, -32],
	[-32.5, Infinity, -32],
	[-32.5, -Infinity, -32],
	[-32.5, 1, -64],
	[-32.5, 32.5, -32],
	[-32.5, 2147483648, -32],
	[-32.5, 3000000000, -32],
	[-32.5, 4000000000.23, -32],
	[-32.5, 5000000000, -32],

t/11.07-bitshift.t  view on Meta::CPAN

	[-32.5, -32.5, -32],
	[-32.5, -3000000000, -32],
	[-32.5, -4000000000.23, -32],
	[-32.5, -5000000000, -32],
	[-32.5, -4294967298.479, 0],
	[-32.5, -6442450942, -128],
	[-32.5, -6442450943.674, -64],
	[-32.5, -6442450944, -32],
	[-32.5, -6442450945, 0],
	[-32.5, -6442450946.74, 0],
	[-3000000000, NaN, 1294967296],
	[-3000000000, +0, 1294967296],
	[-3000000000, -0, 1294967296],
	[-3000000000, Infinity, 1294967296],
	[-3000000000, -Infinity, 1294967296],
	[-3000000000, 1, -1705032704],
	[-3000000000, 32.5, 1294967296],
	[-3000000000, 2147483648, 1294967296],
	[-3000000000, 3000000000, 1294967296],
	[-3000000000, 4000000000.23, 1294967296],
	[-3000000000, 5000000000, 1294967296],

t/11.07-bitshift.t  view on Meta::CPAN

	[-3000000000, -32.5, 1294967296],
	[-3000000000, -3000000000, 1294967296],
	[-3000000000, -4000000000.23, 1294967296],
	[-3000000000, -5000000000, 1294967296],
	[-3000000000, -4294967298.479, 0],
	[-3000000000, -6442450942, 884901888],
	[-3000000000, -6442450943.674, -1705032704],
	[-3000000000, -6442450944, 1294967296],
	[-3000000000, -6442450945, 0],
	[-3000000000, -6442450946.74, 0],
	[-4000000000.23, NaN, 294967296],
	[-4000000000.23, +0, 294967296],
	[-4000000000.23, -0, 294967296],
	[-4000000000.23, Infinity, 294967296],
	[-4000000000.23, -Infinity, 294967296],
	[-4000000000.23, 1, 589934592],
	[-4000000000.23, 32.5, 294967296],
	[-4000000000.23, 2147483648, 294967296],
	[-4000000000.23, 3000000000, 294967296],
	[-4000000000.23, 4000000000.23, 294967296],
	[-4000000000.23, 5000000000, 294967296],

t/11.07-bitshift.t  view on Meta::CPAN

	[-4000000000.23, -32.5, 294967296],
	[-4000000000.23, -3000000000, 294967296],
	[-4000000000.23, -4000000000.23, 294967296],
	[-4000000000.23, -5000000000, 294967296],
	[-4000000000.23, -4294967298.479, 0],
	[-4000000000.23, -6442450942, 1179869184],
	[-4000000000.23, -6442450943.674, 589934592],
	[-4000000000.23, -6442450944, 294967296],
	[-4000000000.23, -6442450945, 0],
	[-4000000000.23, -6442450946.74, 0],
	[-5000000000, NaN, -705032704],
	[-5000000000, +0, -705032704],
	[-5000000000, -0, -705032704],
	[-5000000000, Infinity, -705032704],
	[-5000000000, -Infinity, -705032704],
	[-5000000000, 1, -1410065408],
	[-5000000000, 32.5, -705032704],
	[-5000000000, 2147483648, -705032704],
	[-5000000000, 3000000000, -705032704],
	[-5000000000, 4000000000.23, -705032704],
	[-5000000000, 5000000000, -705032704],

t/11.07-bitshift.t  view on Meta::CPAN

	[-5000000000, -32.5, -705032704],
	[-5000000000, -3000000000, -705032704],
	[-5000000000, -4000000000.23, -705032704],
	[-5000000000, -5000000000, -705032704],
	[-5000000000, -4294967298.479, 0],
	[-5000000000, -6442450942, 1474836480],
	[-5000000000, -6442450943.674, -1410065408],
	[-5000000000, -6442450944, -705032704],
	[-5000000000, -6442450945, 0],
	[-5000000000, -6442450946.74, 0],
	[-4294967298.479, NaN, -2],
	[-4294967298.479, +0, -2],
	[-4294967298.479, -0, -2],
	[-4294967298.479, Infinity, -2],
	[-4294967298.479, -Infinity, -2],
	[-4294967298.479, 1, -4],
	[-4294967298.479, 32.5, -2],
	[-4294967298.479, 2147483648, -2],
	[-4294967298.479, 3000000000, -2],
	[-4294967298.479, 4000000000.23, -2],
	[-4294967298.479, 5000000000, -2],

t/11.07-bitshift.t  view on Meta::CPAN

	[-4294967298.479, -32.5, -2],
	[-4294967298.479, -3000000000, -2],
	[-4294967298.479, -4000000000.23, -2],
	[-4294967298.479, -5000000000, -2],
	[-4294967298.479, -4294967298.479, -2147483648],
	[-4294967298.479, -6442450942, -8],
	[-4294967298.479, -6442450943.674, -4],
	[-4294967298.479, -6442450944, -2],
	[-4294967298.479, -6442450945, 0],
	[-4294967298.479, -6442450946.74, -2147483648],
	[-6442450942, NaN, -2147483646],
	[-6442450942, +0, -2147483646],
	[-6442450942, -0, -2147483646],
	[-6442450942, Infinity, -2147483646],
	[-6442450942, -Infinity, -2147483646],
	[-6442450942, 1, 4],
	[-6442450942, 32.5, -2147483646],
	[-6442450942, 2147483648, -2147483646],
	[-6442450942, 3000000000, -2147483646],
	[-6442450942, 4000000000.23, -2147483646],
	[-6442450942, 5000000000, -2147483646],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450942, -32.5, -2147483646],
	[-6442450942, -3000000000, -2147483646],
	[-6442450942, -4000000000.23, -2147483646],
	[-6442450942, -5000000000, -2147483646],
	[-6442450942, -4294967298.479, -2147483648],
	[-6442450942, -6442450942, 8],
	[-6442450942, -6442450943.674, 4],
	[-6442450942, -6442450944, -2147483646],
	[-6442450942, -6442450945, 0],
	[-6442450942, -6442450946.74, -2147483648],
	[-6442450943.674, NaN, -2147483647],
	[-6442450943.674, +0, -2147483647],
	[-6442450943.674, -0, -2147483647],
	[-6442450943.674, Infinity, -2147483647],
	[-6442450943.674, -Infinity, -2147483647],
	[-6442450943.674, 1, 2],
	[-6442450943.674, 32.5, -2147483647],
	[-6442450943.674, 2147483648, -2147483647],
	[-6442450943.674, 3000000000, -2147483647],
	[-6442450943.674, 4000000000.23, -2147483647],
	[-6442450943.674, 5000000000, -2147483647],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450943.674, -32.5, -2147483647],
	[-6442450943.674, -3000000000, -2147483647],
	[-6442450943.674, -4000000000.23, -2147483647],
	[-6442450943.674, -5000000000, -2147483647],
	[-6442450943.674, -4294967298.479, 1073741824],
	[-6442450943.674, -6442450942, 4],
	[-6442450943.674, -6442450943.674, 2],
	[-6442450943.674, -6442450944, -2147483647],
	[-6442450943.674, -6442450945, -2147483648],
	[-6442450943.674, -6442450946.74, 1073741824],
	[-6442450944, NaN, -2147483648],
	[-6442450944, +0, -2147483648],
	[-6442450944, -0, -2147483648],
	[-6442450944, Infinity, -2147483648],
	[-6442450944, -Infinity, -2147483648],
	[-6442450944, 1, 0],
	[-6442450944, 32.5, -2147483648],
	[-6442450944, 2147483648, -2147483648],
	[-6442450944, 3000000000, -2147483648],
	[-6442450944, 4000000000.23, -2147483648],
	[-6442450944, 5000000000, -2147483648],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450944, -32.5, -2147483648],
	[-6442450944, -3000000000, -2147483648],
	[-6442450944, -4000000000.23, -2147483648],
	[-6442450944, -5000000000, -2147483648],
	[-6442450944, -4294967298.479, 0],
	[-6442450944, -6442450942, 0],
	[-6442450944, -6442450943.674, 0],
	[-6442450944, -6442450944, -2147483648],
	[-6442450944, -6442450945, 0],
	[-6442450944, -6442450946.74, 0],
	[-6442450945, NaN, 2147483647],
	[-6442450945, +0, 2147483647],
	[-6442450945, -0, 2147483647],
	[-6442450945, Infinity, 2147483647],
	[-6442450945, -Infinity, 2147483647],
	[-6442450945, 1, -2],
	[-6442450945, 32.5, 2147483647],
	[-6442450945, 2147483648, 2147483647],
	[-6442450945, 3000000000, 2147483647],
	[-6442450945, 4000000000.23, 2147483647],
	[-6442450945, 5000000000, 2147483647],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450945, -32.5, 2147483647],
	[-6442450945, -3000000000, 2147483647],
	[-6442450945, -4000000000.23, 2147483647],
	[-6442450945, -5000000000, 2147483647],
	[-6442450945, -4294967298.479, -1073741824],
	[-6442450945, -6442450942, -4],
	[-6442450945, -6442450943.674, -2],
	[-6442450945, -6442450944, 2147483647],
	[-6442450945, -6442450945, -2147483648],
	[-6442450945, -6442450946.74, -1073741824],
	[-6442450946.74, NaN, 2147483646],
	[-6442450946.74, +0, 2147483646],
	[-6442450946.74, -0, 2147483646],
	[-6442450946.74, Infinity, 2147483646],
	[-6442450946.74, -Infinity, 2147483646],
	[-6442450946.74, 1, -4],
	[-6442450946.74, 32.5, 2147483646],
	[-6442450946.74, 2147483648, 2147483646],
	[-6442450946.74, 3000000000, 2147483646],
	[-6442450946.74, 4000000000.23, 2147483646],
	[-6442450946.74, 5000000000, 2147483646],

t/11.07-bitshift.t  view on Meta::CPAN

ok(new Number(34.2) >> null === 34, "number object >> null")
ok(new Number(34.2) >> true === 17, "number object >> boolean")
ok(new Number(34.2) >> "3" === 4, "number object >> string")
ok(new Number(34.2) >> 73 === 0, "number object >> number")
ok(new Number(34.2) >> {} === 34, "number object >> object")
ok(new Number(34.2) >> new Number(34.2) === 8, "number object >> number object")

/* Tests 942-1782: numebr >> number */

n2n = [
	[NaN, NaN, 0],
	[NaN, +0, 0],
	[NaN, -0, 0],
	[NaN, Infinity, 0],
	[NaN, -Infinity, 0],
	[NaN, 1, 0],
	[NaN, 32.5, 0],
	[NaN, 2147483648, 0],
	[NaN, 3000000000, 0],
	[NaN, 4000000000.23, 0],
	[NaN, 5000000000, 0],
	[NaN, 4294967296, 0],
	[NaN, 4294967298.479, 0],
	[NaN, 6442450942, 0],
	[NaN, 6442450943.674, 0],
	[NaN, 6442450944, 0],
	[NaN, 6442450945, 0],
	[NaN, 6442450946.74, 0],
	[NaN, -1, 0],
	[NaN, -32.5, 0],
	[NaN, -3000000000, 0],
	[NaN, -4000000000.23, 0],
	[NaN, -5000000000, 0],
	[NaN, -4294967298.479, 0],
	[NaN, -6442450942, 0],
	[NaN, -6442450943.674, 0],
	[NaN, -6442450944, 0],
	[NaN, -6442450945, 0],
	[NaN, -6442450946.74, 0],
	[+0, NaN, 0],
	[+0, +0, 0],
	[+0, -0, 0],
	[+0, Infinity, 0],
	[+0, -Infinity, 0],
	[+0, 1, 0],
	[+0, 32.5, 0],
	[+0, 2147483648, 0],
	[+0, 3000000000, 0],
	[+0, 4000000000.23, 0],
	[+0, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[+0, -32.5, 0],
	[+0, -3000000000, 0],
	[+0, -4000000000.23, 0],
	[+0, -5000000000, 0],
	[+0, -4294967298.479, 0],
	[+0, -6442450942, 0],
	[+0, -6442450943.674, 0],
	[+0, -6442450944, 0],
	[+0, -6442450945, 0],
	[+0, -6442450946.74, 0],
	[-0, NaN, 0],
	[-0, +0, 0],
	[-0, -0, 0],
	[-0, Infinity, 0],
	[-0, -Infinity, 0],
	[-0, 1, 0],
	[-0, 32.5, 0],
	[-0, 2147483648, 0],
	[-0, 3000000000, 0],
	[-0, 4000000000.23, 0],
	[-0, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[-0, -32.5, 0],
	[-0, -3000000000, 0],
	[-0, -4000000000.23, 0],
	[-0, -5000000000, 0],
	[-0, -4294967298.479, 0],
	[-0, -6442450942, 0],
	[-0, -6442450943.674, 0],
	[-0, -6442450944, 0],
	[-0, -6442450945, 0],
	[-0, -6442450946.74, 0],
	[Infinity, NaN, 0],
	[Infinity, +0, 0],
	[Infinity, -0, 0],
	[Infinity, Infinity, 0],
	[Infinity, -Infinity, 0],
	[Infinity, 1, 0],
	[Infinity, 32.5, 0],
	[Infinity, 2147483648, 0],
	[Infinity, 3000000000, 0],
	[Infinity, 4000000000.23, 0],
	[Infinity, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[Infinity, -32.5, 0],
	[Infinity, -3000000000, 0],
	[Infinity, -4000000000.23, 0],
	[Infinity, -5000000000, 0],
	[Infinity, -4294967298.479, 0],
	[Infinity, -6442450942, 0],
	[Infinity, -6442450943.674, 0],
	[Infinity, -6442450944, 0],
	[Infinity, -6442450945, 0],
	[Infinity, -6442450946.74, 0],
	[-Infinity, NaN, 0],
	[-Infinity, +0, 0],
	[-Infinity, -0, 0],
	[-Infinity, Infinity, 0],
	[-Infinity, -Infinity, 0],
	[-Infinity, 1, 0],
	[-Infinity, 32.5, 0],
	[-Infinity, 2147483648, 0],
	[-Infinity, 3000000000, 0],
	[-Infinity, 4000000000.23, 0],
	[-Infinity, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[-Infinity, -32.5, 0],
	[-Infinity, -3000000000, 0],
	[-Infinity, -4000000000.23, 0],
	[-Infinity, -5000000000, 0],
	[-Infinity, -4294967298.479, 0],
	[-Infinity, -6442450942, 0],
	[-Infinity, -6442450943.674, 0],
	[-Infinity, -6442450944, 0],
	[-Infinity, -6442450945, 0],
	[-Infinity, -6442450946.74, 0],
	[1, NaN, 1],
	[1, +0, 1],
	[1, -0, 1],
	[1, Infinity, 1],
	[1, -Infinity, 1],
	[1, 1, 0],
	[1, 32.5, 1],
	[1, 2147483648, 1],
	[1, 3000000000, 1],
	[1, 4000000000.23, 1],
	[1, 5000000000, 1],

t/11.07-bitshift.t  view on Meta::CPAN

	[1, -32.5, 1],
	[1, -3000000000, 1],
	[1, -4000000000.23, 1],
	[1, -5000000000, 1],
	[1, -4294967298.479, 0],
	[1, -6442450942, 0],
	[1, -6442450943.674, 0],
	[1, -6442450944, 1],
	[1, -6442450945, 0],
	[1, -6442450946.74, 0],
	[32.5, NaN, 32],
	[32.5, +0, 32],
	[32.5, -0, 32],
	[32.5, Infinity, 32],
	[32.5, -Infinity, 32],
	[32.5, 1, 16],
	[32.5, 32.5, 32],
	[32.5, 2147483648, 32],
	[32.5, 3000000000, 32],
	[32.5, 4000000000.23, 32],
	[32.5, 5000000000, 32],

t/11.07-bitshift.t  view on Meta::CPAN

	[32.5, -32.5, 32],
	[32.5, -3000000000, 32],
	[32.5, -4000000000.23, 32],
	[32.5, -5000000000, 32],
	[32.5, -4294967298.479, 0],
	[32.5, -6442450942, 8],
	[32.5, -6442450943.674, 16],
	[32.5, -6442450944, 32],
	[32.5, -6442450945, 0],
	[32.5, -6442450946.74, 0],
	[2147483648, NaN, -2147483648],
	[2147483648, +0, -2147483648],
	[2147483648, -0, -2147483648],
	[2147483648, Infinity, -2147483648],
	[2147483648, -Infinity, -2147483648],
	[2147483648, 1, -1073741824],
	[2147483648, 32.5, -2147483648],
	[2147483648, 2147483648, -2147483648],
	[2147483648, 3000000000, -2147483648],
	[2147483648, 4000000000.23, -2147483648],
	[2147483648, 5000000000, -2147483648],

t/11.07-bitshift.t  view on Meta::CPAN

	[2147483648, -32.5, -2147483648],
	[2147483648, -3000000000, -2147483648],
	[2147483648, -4000000000.23, -2147483648],
	[2147483648, -5000000000, -2147483648],
	[2147483648, -4294967298.479, -2],
	[2147483648, -6442450942, -536870912],
	[2147483648, -6442450943.674, -1073741824],
	[2147483648, -6442450944, -2147483648],
	[2147483648, -6442450945, -1],
	[2147483648, -6442450946.74, -2],
	[3000000000, NaN, -1294967296],
	[3000000000, +0, -1294967296],
	[3000000000, -0, -1294967296],
	[3000000000, Infinity, -1294967296],
	[3000000000, -Infinity, -1294967296],
	[3000000000, 1, -647483648],
	[3000000000, 32.5, -1294967296],
	[3000000000, 2147483648, -1294967296],
	[3000000000, 3000000000, -1294967296],
	[3000000000, 4000000000.23, -1294967296],
	[3000000000, 5000000000, -1294967296],

t/11.07-bitshift.t  view on Meta::CPAN

	[3000000000, -32.5, -1294967296],
	[3000000000, -3000000000, -1294967296],
	[3000000000, -4000000000.23, -1294967296],
	[3000000000, -5000000000, -1294967296],
	[3000000000, -4294967298.479, -2],
	[3000000000, -6442450942, -323741824],
	[3000000000, -6442450943.674, -647483648],
	[3000000000, -6442450944, -1294967296],
	[3000000000, -6442450945, -1],
	[3000000000, -6442450946.74, -2],
	[4000000000.23, NaN, -294967296],
	[4000000000.23, +0, -294967296],
	[4000000000.23, -0, -294967296],
	[4000000000.23, Infinity, -294967296],
	[4000000000.23, -Infinity, -294967296],
	[4000000000.23, 1, -147483648],
	[4000000000.23, 32.5, -294967296],
	[4000000000.23, 2147483648, -294967296],
	[4000000000.23, 3000000000, -294967296],
	[4000000000.23, 4000000000.23, -294967296],
	[4000000000.23, 5000000000, -294967296],

t/11.07-bitshift.t  view on Meta::CPAN

	[4000000000.23, -32.5, -294967296],
	[4000000000.23, -3000000000, -294967296],
	[4000000000.23, -4000000000.23, -294967296],
	[4000000000.23, -5000000000, -294967296],
	[4000000000.23, -4294967298.479, -1],
	[4000000000.23, -6442450942, -73741824],
	[4000000000.23, -6442450943.674, -147483648],
	[4000000000.23, -6442450944, -294967296],
	[4000000000.23, -6442450945, -1],
	[4000000000.23, -6442450946.74, -1],
	[5000000000, NaN, 705032704],
	[5000000000, +0, 705032704],
	[5000000000, -0, 705032704],
	[5000000000, Infinity, 705032704],
	[5000000000, -Infinity, 705032704],
	[5000000000, 1, 352516352],
	[5000000000, 32.5, 705032704],
	[5000000000, 2147483648, 705032704],
	[5000000000, 3000000000, 705032704],
	[5000000000, 4000000000.23, 705032704],
	[5000000000, 5000000000, 705032704],

t/11.07-bitshift.t  view on Meta::CPAN

	[5000000000, -32.5, 705032704],
	[5000000000, -3000000000, 705032704],
	[5000000000, -4000000000.23, 705032704],
	[5000000000, -5000000000, 705032704],
	[5000000000, -4294967298.479, 0],
	[5000000000, -6442450942, 176258176],
	[5000000000, -6442450943.674, 352516352],
	[5000000000, -6442450944, 705032704],
	[5000000000, -6442450945, 0],
	[5000000000, -6442450946.74, 0],
	[4294967296, NaN, 0],
	[4294967296, +0, 0],
	[4294967296, -0, 0],
	[4294967296, Infinity, 0],
	[4294967296, -Infinity, 0],
	[4294967296, 1, 0],
	[4294967296, 32.5, 0],
	[4294967296, 2147483648, 0],
	[4294967296, 3000000000, 0],
	[4294967296, 4000000000.23, 0],
	[4294967296, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[4294967296, -32.5, 0],
	[4294967296, -3000000000, 0],
	[4294967296, -4000000000.23, 0],
	[4294967296, -5000000000, 0],
	[4294967296, -4294967298.479, 0],
	[4294967296, -6442450942, 0],
	[4294967296, -6442450943.674, 0],
	[4294967296, -6442450944, 0],
	[4294967296, -6442450945, 0],
	[4294967296, -6442450946.74, 0],
	[4294967298.479, NaN, 2],
	[4294967298.479, +0, 2],
	[4294967298.479, -0, 2],
	[4294967298.479, Infinity, 2],
	[4294967298.479, -Infinity, 2],
	[4294967298.479, 1, 1],
	[4294967298.479, 32.5, 2],
	[4294967298.479, 2147483648, 2],
	[4294967298.479, 3000000000, 2],
	[4294967298.479, 4000000000.23, 2],
	[4294967298.479, 5000000000, 2],

t/11.07-bitshift.t  view on Meta::CPAN

	[4294967298.479, -32.5, 2],
	[4294967298.479, -3000000000, 2],
	[4294967298.479, -4000000000.23, 2],
	[4294967298.479, -5000000000, 2],
	[4294967298.479, -4294967298.479, 0],
	[4294967298.479, -6442450942, 0],
	[4294967298.479, -6442450943.674, 1],
	[4294967298.479, -6442450944, 2],
	[4294967298.479, -6442450945, 0],
	[4294967298.479, -6442450946.74, 0],
	[6442450942, NaN, 2147483646],
	[6442450942, +0, 2147483646],
	[6442450942, -0, 2147483646],
	[6442450942, Infinity, 2147483646],
	[6442450942, -Infinity, 2147483646],
	[6442450942, 1, 1073741823],
	[6442450942, 32.5, 2147483646],
	[6442450942, 2147483648, 2147483646],
	[6442450942, 3000000000, 2147483646],
	[6442450942, 4000000000.23, 2147483646],
	[6442450942, 5000000000, 2147483646],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450942, -32.5, 2147483646],
	[6442450942, -3000000000, 2147483646],
	[6442450942, -4000000000.23, 2147483646],
	[6442450942, -5000000000, 2147483646],
	[6442450942, -4294967298.479, 1],
	[6442450942, -6442450942, 536870911],
	[6442450942, -6442450943.674, 1073741823],
	[6442450942, -6442450944, 2147483646],
	[6442450942, -6442450945, 0],
	[6442450942, -6442450946.74, 1],
	[6442450943.674, NaN, 2147483647],
	[6442450943.674, +0, 2147483647],
	[6442450943.674, -0, 2147483647],
	[6442450943.674, Infinity, 2147483647],
	[6442450943.674, -Infinity, 2147483647],
	[6442450943.674, 1, 1073741823],
	[6442450943.674, 32.5, 2147483647],
	[6442450943.674, 2147483648, 2147483647],
	[6442450943.674, 3000000000, 2147483647],
	[6442450943.674, 4000000000.23, 2147483647],
	[6442450943.674, 5000000000, 2147483647],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450943.674, -32.5, 2147483647],
	[6442450943.674, -3000000000, 2147483647],
	[6442450943.674, -4000000000.23, 2147483647],
	[6442450943.674, -5000000000, 2147483647],
	[6442450943.674, -4294967298.479, 1],
	[6442450943.674, -6442450942, 536870911],
	[6442450943.674, -6442450943.674, 1073741823],
	[6442450943.674, -6442450944, 2147483647],
	[6442450943.674, -6442450945, 0],
	[6442450943.674, -6442450946.74, 1],
	[6442450944, NaN, -2147483648],
	[6442450944, +0, -2147483648],
	[6442450944, -0, -2147483648],
	[6442450944, Infinity, -2147483648],
	[6442450944, -Infinity, -2147483648],
	[6442450944, 1, -1073741824],
	[6442450944, 32.5, -2147483648],
	[6442450944, 2147483648, -2147483648],
	[6442450944, 3000000000, -2147483648],
	[6442450944, 4000000000.23, -2147483648],
	[6442450944, 5000000000, -2147483648],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450944, -32.5, -2147483648],
	[6442450944, -3000000000, -2147483648],
	[6442450944, -4000000000.23, -2147483648],
	[6442450944, -5000000000, -2147483648],
	[6442450944, -4294967298.479, -2],
	[6442450944, -6442450942, -536870912],
	[6442450944, -6442450943.674, -1073741824],
	[6442450944, -6442450944, -2147483648],
	[6442450944, -6442450945, -1],
	[6442450944, -6442450946.74, -2],
	[6442450945, NaN, -2147483647],
	[6442450945, +0, -2147483647],
	[6442450945, -0, -2147483647],
	[6442450945, Infinity, -2147483647],
	[6442450945, -Infinity, -2147483647],
	[6442450945, 1, -1073741824],
	[6442450945, 32.5, -2147483647],
	[6442450945, 2147483648, -2147483647],
	[6442450945, 3000000000, -2147483647],
	[6442450945, 4000000000.23, -2147483647],
	[6442450945, 5000000000, -2147483647],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450945, -32.5, -2147483647],
	[6442450945, -3000000000, -2147483647],
	[6442450945, -4000000000.23, -2147483647],
	[6442450945, -5000000000, -2147483647],
	[6442450945, -4294967298.479, -2],
	[6442450945, -6442450942, -536870912],
	[6442450945, -6442450943.674, -1073741824],
	[6442450945, -6442450944, -2147483647],
	[6442450945, -6442450945, -1],
	[6442450945, -6442450946.74, -2],
	[6442450946.74, NaN, -2147483646],
	[6442450946.74, +0, -2147483646],
	[6442450946.74, -0, -2147483646],
	[6442450946.74, Infinity, -2147483646],
	[6442450946.74, -Infinity, -2147483646],
	[6442450946.74, 1, -1073741823],
	[6442450946.74, 32.5, -2147483646],
	[6442450946.74, 2147483648, -2147483646],
	[6442450946.74, 3000000000, -2147483646],
	[6442450946.74, 4000000000.23, -2147483646],
	[6442450946.74, 5000000000, -2147483646],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450946.74, -32.5, -2147483646],
	[6442450946.74, -3000000000, -2147483646],
	[6442450946.74, -4000000000.23, -2147483646],
	[6442450946.74, -5000000000, -2147483646],
	[6442450946.74, -4294967298.479, -2],
	[6442450946.74, -6442450942, -536870912],
	[6442450946.74, -6442450943.674, -1073741823],
	[6442450946.74, -6442450944, -2147483646],
	[6442450946.74, -6442450945, -1],
	[6442450946.74, -6442450946.74, -2],
	[-1, NaN, -1],
	[-1, +0, -1],
	[-1, -0, -1],
	[-1, Infinity, -1],
	[-1, -Infinity, -1],
	[-1, 1, -1],
	[-1, 32.5, -1],
	[-1, 2147483648, -1],
	[-1, 3000000000, -1],
	[-1, 4000000000.23, -1],
	[-1, 5000000000, -1],

t/11.07-bitshift.t  view on Meta::CPAN

	[-1, -32.5, -1],
	[-1, -3000000000, -1],
	[-1, -4000000000.23, -1],
	[-1, -5000000000, -1],
	[-1, -4294967298.479, -1],
	[-1, -6442450942, -1],
	[-1, -6442450943.674, -1],
	[-1, -6442450944, -1],
	[-1, -6442450945, -1],
	[-1, -6442450946.74, -1],
	[-32.5, NaN, -32],
	[-32.5, +0, -32],
	[-32.5, -0, -32],
	[-32.5, Infinity, -32],
	[-32.5, -Infinity, -32],
	[-32.5, 1, -16],
	[-32.5, 32.5, -32],
	[-32.5, 2147483648, -32],
	[-32.5, 3000000000, -32],
	[-32.5, 4000000000.23, -32],
	[-32.5, 5000000000, -32],

t/11.07-bitshift.t  view on Meta::CPAN

	[-32.5, -32.5, -32],
	[-32.5, -3000000000, -32],
	[-32.5, -4000000000.23, -32],
	[-32.5, -5000000000, -32],
	[-32.5, -4294967298.479, -1],
	[-32.5, -6442450942, -8],
	[-32.5, -6442450943.674, -16],
	[-32.5, -6442450944, -32],
	[-32.5, -6442450945, -1],
	[-32.5, -6442450946.74, -1],
	[-3000000000, NaN, 1294967296],
	[-3000000000, +0, 1294967296],
	[-3000000000, -0, 1294967296],
	[-3000000000, Infinity, 1294967296],
	[-3000000000, -Infinity, 1294967296],
	[-3000000000, 1, 647483648],
	[-3000000000, 32.5, 1294967296],
	[-3000000000, 2147483648, 1294967296],
	[-3000000000, 3000000000, 1294967296],
	[-3000000000, 4000000000.23, 1294967296],
	[-3000000000, 5000000000, 1294967296],

t/11.07-bitshift.t  view on Meta::CPAN

	[-3000000000, -32.5, 1294967296],
	[-3000000000, -3000000000, 1294967296],
	[-3000000000, -4000000000.23, 1294967296],
	[-3000000000, -5000000000, 1294967296],
	[-3000000000, -4294967298.479, 1],
	[-3000000000, -6442450942, 323741824],
	[-3000000000, -6442450943.674, 647483648],
	[-3000000000, -6442450944, 1294967296],
	[-3000000000, -6442450945, 0],
	[-3000000000, -6442450946.74, 1],
	[-4000000000.23, NaN, 294967296],
	[-4000000000.23, +0, 294967296],
	[-4000000000.23, -0, 294967296],
	[-4000000000.23, Infinity, 294967296],
	[-4000000000.23, -Infinity, 294967296],
	[-4000000000.23, 1, 147483648],
	[-4000000000.23, 32.5, 294967296],
	[-4000000000.23, 2147483648, 294967296],
	[-4000000000.23, 3000000000, 294967296],
	[-4000000000.23, 4000000000.23, 294967296],
	[-4000000000.23, 5000000000, 294967296],

t/11.07-bitshift.t  view on Meta::CPAN

	[-4000000000.23, -32.5, 294967296],
	[-4000000000.23, -3000000000, 294967296],
	[-4000000000.23, -4000000000.23, 294967296],
	[-4000000000.23, -5000000000, 294967296],
	[-4000000000.23, -4294967298.479, 0],
	[-4000000000.23, -6442450942, 73741824],
	[-4000000000.23, -6442450943.674, 147483648],
	[-4000000000.23, -6442450944, 294967296],
	[-4000000000.23, -6442450945, 0],
	[-4000000000.23, -6442450946.74, 0],
	[-5000000000, NaN, -705032704],
	[-5000000000, +0, -705032704],
	[-5000000000, -0, -705032704],
	[-5000000000, Infinity, -705032704],
	[-5000000000, -Infinity, -705032704],
	[-5000000000, 1, -352516352],
	[-5000000000, 32.5, -705032704],
	[-5000000000, 2147483648, -705032704],
	[-5000000000, 3000000000, -705032704],
	[-5000000000, 4000000000.23, -705032704],
	[-5000000000, 5000000000, -705032704],

t/11.07-bitshift.t  view on Meta::CPAN

	[-5000000000, -32.5, -705032704],
	[-5000000000, -3000000000, -705032704],
	[-5000000000, -4000000000.23, -705032704],
	[-5000000000, -5000000000, -705032704],
	[-5000000000, -4294967298.479, -1],
	[-5000000000, -6442450942, -176258176],
	[-5000000000, -6442450943.674, -352516352],
	[-5000000000, -6442450944, -705032704],
	[-5000000000, -6442450945, -1],
	[-5000000000, -6442450946.74, -1],
	[-4294967298.479, NaN, -2],
	[-4294967298.479, +0, -2],
	[-4294967298.479, -0, -2],
	[-4294967298.479, Infinity, -2],
	[-4294967298.479, -Infinity, -2],
	[-4294967298.479, 1, -1],
	[-4294967298.479, 32.5, -2],
	[-4294967298.479, 2147483648, -2],
	[-4294967298.479, 3000000000, -2],
	[-4294967298.479, 4000000000.23, -2],
	[-4294967298.479, 5000000000, -2],

t/11.07-bitshift.t  view on Meta::CPAN

	[-4294967298.479, -32.5, -2],
	[-4294967298.479, -3000000000, -2],
	[-4294967298.479, -4000000000.23, -2],
	[-4294967298.479, -5000000000, -2],
	[-4294967298.479, -4294967298.479, -1],
	[-4294967298.479, -6442450942, -1],
	[-4294967298.479, -6442450943.674, -1],
	[-4294967298.479, -6442450944, -2],
	[-4294967298.479, -6442450945, -1],
	[-4294967298.479, -6442450946.74, -1],
	[-6442450942, NaN, -2147483646],
	[-6442450942, +0, -2147483646],
	[-6442450942, -0, -2147483646],
	[-6442450942, Infinity, -2147483646],
	[-6442450942, -Infinity, -2147483646],
	[-6442450942, 1, -1073741823],
	[-6442450942, 32.5, -2147483646],
	[-6442450942, 2147483648, -2147483646],
	[-6442450942, 3000000000, -2147483646],
	[-6442450942, 4000000000.23, -2147483646],
	[-6442450942, 5000000000, -2147483646],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450942, -32.5, -2147483646],
	[-6442450942, -3000000000, -2147483646],
	[-6442450942, -4000000000.23, -2147483646],
	[-6442450942, -5000000000, -2147483646],
	[-6442450942, -4294967298.479, -2],
	[-6442450942, -6442450942, -536870912],
	[-6442450942, -6442450943.674, -1073741823],
	[-6442450942, -6442450944, -2147483646],
	[-6442450942, -6442450945, -1],
	[-6442450942, -6442450946.74, -2],
	[-6442450943.674, NaN, -2147483647],
	[-6442450943.674, +0, -2147483647],
	[-6442450943.674, -0, -2147483647],
	[-6442450943.674, Infinity, -2147483647],
	[-6442450943.674, -Infinity, -2147483647],
	[-6442450943.674, 1, -1073741824],
	[-6442450943.674, 32.5, -2147483647],
	[-6442450943.674, 2147483648, -2147483647],
	[-6442450943.674, 3000000000, -2147483647],
	[-6442450943.674, 4000000000.23, -2147483647],
	[-6442450943.674, 5000000000, -2147483647],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450943.674, -32.5, -2147483647],
	[-6442450943.674, -3000000000, -2147483647],
	[-6442450943.674, -4000000000.23, -2147483647],
	[-6442450943.674, -5000000000, -2147483647],
	[-6442450943.674, -4294967298.479, -2],
	[-6442450943.674, -6442450942, -536870912],
	[-6442450943.674, -6442450943.674, -1073741824],
	[-6442450943.674, -6442450944, -2147483647],
	[-6442450943.674, -6442450945, -1],
	[-6442450943.674, -6442450946.74, -2],
	[-6442450944, NaN, -2147483648],
	[-6442450944, +0, -2147483648],
	[-6442450944, -0, -2147483648],
	[-6442450944, Infinity, -2147483648],
	[-6442450944, -Infinity, -2147483648],
	[-6442450944, 1, -1073741824],
	[-6442450944, 32.5, -2147483648],
	[-6442450944, 2147483648, -2147483648],
	[-6442450944, 3000000000, -2147483648],
	[-6442450944, 4000000000.23, -2147483648],
	[-6442450944, 5000000000, -2147483648],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450944, -32.5, -2147483648],
	[-6442450944, -3000000000, -2147483648],
	[-6442450944, -4000000000.23, -2147483648],
	[-6442450944, -5000000000, -2147483648],
	[-6442450944, -4294967298.479, -2],
	[-6442450944, -6442450942, -536870912],
	[-6442450944, -6442450943.674, -1073741824],
	[-6442450944, -6442450944, -2147483648],
	[-6442450944, -6442450945, -1],
	[-6442450944, -6442450946.74, -2],
	[-6442450945, NaN, 2147483647],
	[-6442450945, +0, 2147483647],
	[-6442450945, -0, 2147483647],
	[-6442450945, Infinity, 2147483647],
	[-6442450945, -Infinity, 2147483647],
	[-6442450945, 1, 1073741823],
	[-6442450945, 32.5, 2147483647],
	[-6442450945, 2147483648, 2147483647],
	[-6442450945, 3000000000, 2147483647],
	[-6442450945, 4000000000.23, 2147483647],
	[-6442450945, 5000000000, 2147483647],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450945, -32.5, 2147483647],
	[-6442450945, -3000000000, 2147483647],
	[-6442450945, -4000000000.23, 2147483647],
	[-6442450945, -5000000000, 2147483647],
	[-6442450945, -4294967298.479, 1],
	[-6442450945, -6442450942, 536870911],
	[-6442450945, -6442450943.674, 1073741823],
	[-6442450945, -6442450944, 2147483647],
	[-6442450945, -6442450945, 0],
	[-6442450945, -6442450946.74, 1],
	[-6442450946.74, NaN, 2147483646],
	[-6442450946.74, +0, 2147483646],
	[-6442450946.74, -0, 2147483646],
	[-6442450946.74, Infinity, 2147483646],
	[-6442450946.74, -Infinity, 2147483646],
	[-6442450946.74, 1, 1073741823],
	[-6442450946.74, 32.5, 2147483646],
	[-6442450946.74, 2147483648, 2147483646],
	[-6442450946.74, 3000000000, 2147483646],
	[-6442450946.74, 4000000000.23, 2147483646],
	[-6442450946.74, 5000000000, 2147483646],

t/11.07-bitshift.t  view on Meta::CPAN

ok(new Number(34.2) >>> null === 34, "number object >>> null")
ok(new Number(34.2) >>> true === 17, "number object >>> boolean")
ok(new Number(34.2) >>> "3" === 4, "number object >>> string")
ok(new Number(34.2) >>> 73 === 0, "number object >>> number")
ok(new Number(34.2) >>> {} === 34, "number object >>> object")
ok(new Number(34.2) >>> new Number(34.2) === 8, "number object >>> number object")

/* Tests 1332-2672 */

n2n = [
	[NaN, NaN, 0],
	[NaN, +0, 0],
	[NaN, -0, 0],
	[NaN, Infinity, 0],
	[NaN, -Infinity, 0],
	[NaN, 1, 0],
	[NaN, 32.5, 0],
	[NaN, 2147483648, 0],
	[NaN, 3000000000, 0],
	[NaN, 4000000000.23, 0],
	[NaN, 5000000000, 0],
	[NaN, 4294967296, 0],
	[NaN, 4294967298.479, 0],
	[NaN, 6442450942, 0],
	[NaN, 6442450943.674, 0],
	[NaN, 6442450944, 0],
	[NaN, 6442450945, 0],
	[NaN, 6442450946.74, 0],
	[NaN, -1, 0],
	[NaN, -32.5, 0],
	[NaN, -3000000000, 0],
	[NaN, -4000000000.23, 0],
	[NaN, -5000000000, 0],
	[NaN, -4294967298.479, 0],
	[NaN, -6442450942, 0],
	[NaN, -6442450943.674, 0],
	[NaN, -6442450944, 0],
	[NaN, -6442450945, 0],
	[NaN, -6442450946.74, 0],
	[+0, NaN, 0],
	[+0, +0, 0],
	[+0, -0, 0],
	[+0, Infinity, 0],
	[+0, -Infinity, 0],
	[+0, 1, 0],
	[+0, 32.5, 0],
	[+0, 2147483648, 0],
	[+0, 3000000000, 0],
	[+0, 4000000000.23, 0],
	[+0, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[+0, -32.5, 0],
	[+0, -3000000000, 0],
	[+0, -4000000000.23, 0],
	[+0, -5000000000, 0],
	[+0, -4294967298.479, 0],
	[+0, -6442450942, 0],
	[+0, -6442450943.674, 0],
	[+0, -6442450944, 0],
	[+0, -6442450945, 0],
	[+0, -6442450946.74, 0],
	[-0, NaN, 0],
	[-0, +0, 0],
	[-0, -0, 0],
	[-0, Infinity, 0],
	[-0, -Infinity, 0],
	[-0, 1, 0],
	[-0, 32.5, 0],
	[-0, 2147483648, 0],
	[-0, 3000000000, 0],
	[-0, 4000000000.23, 0],
	[-0, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[-0, -32.5, 0],
	[-0, -3000000000, 0],
	[-0, -4000000000.23, 0],
	[-0, -5000000000, 0],
	[-0, -4294967298.479, 0],
	[-0, -6442450942, 0],
	[-0, -6442450943.674, 0],
	[-0, -6442450944, 0],
	[-0, -6442450945, 0],
	[-0, -6442450946.74, 0],
	[Infinity, NaN, 0],
	[Infinity, +0, 0],
	[Infinity, -0, 0],
	[Infinity, Infinity, 0],
	[Infinity, -Infinity, 0],
	[Infinity, 1, 0],
	[Infinity, 32.5, 0],
	[Infinity, 2147483648, 0],
	[Infinity, 3000000000, 0],
	[Infinity, 4000000000.23, 0],
	[Infinity, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[Infinity, -32.5, 0],
	[Infinity, -3000000000, 0],
	[Infinity, -4000000000.23, 0],
	[Infinity, -5000000000, 0],
	[Infinity, -4294967298.479, 0],
	[Infinity, -6442450942, 0],
	[Infinity, -6442450943.674, 0],
	[Infinity, -6442450944, 0],
	[Infinity, -6442450945, 0],
	[Infinity, -6442450946.74, 0],
	[-Infinity, NaN, 0],
	[-Infinity, +0, 0],
	[-Infinity, -0, 0],
	[-Infinity, Infinity, 0],
	[-Infinity, -Infinity, 0],
	[-Infinity, 1, 0],
	[-Infinity, 32.5, 0],
	[-Infinity, 2147483648, 0],
	[-Infinity, 3000000000, 0],
	[-Infinity, 4000000000.23, 0],
	[-Infinity, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[-Infinity, -32.5, 0],
	[-Infinity, -3000000000, 0],
	[-Infinity, -4000000000.23, 0],
	[-Infinity, -5000000000, 0],
	[-Infinity, -4294967298.479, 0],
	[-Infinity, -6442450942, 0],
	[-Infinity, -6442450943.674, 0],
	[-Infinity, -6442450944, 0],
	[-Infinity, -6442450945, 0],
	[-Infinity, -6442450946.74, 0],
	[1, NaN, 1],
	[1, +0, 1],
	[1, -0, 1],
	[1, Infinity, 1],
	[1, -Infinity, 1],
	[1, 1, 0],
	[1, 32.5, 1],
	[1, 2147483648, 1],
	[1, 3000000000, 1],
	[1, 4000000000.23, 1],
	[1, 5000000000, 1],

t/11.07-bitshift.t  view on Meta::CPAN

	[1, -32.5, 1],
	[1, -3000000000, 1],
	[1, -4000000000.23, 1],
	[1, -5000000000, 1],
	[1, -4294967298.479, 0],
	[1, -6442450942, 0],
	[1, -6442450943.674, 0],
	[1, -6442450944, 1],
	[1, -6442450945, 0],
	[1, -6442450946.74, 0],
	[32.5, NaN, 32],
	[32.5, +0, 32],
	[32.5, -0, 32],
	[32.5, Infinity, 32],
	[32.5, -Infinity, 32],
	[32.5, 1, 16],
	[32.5, 32.5, 32],
	[32.5, 2147483648, 32],
	[32.5, 3000000000, 32],
	[32.5, 4000000000.23, 32],
	[32.5, 5000000000, 32],

t/11.07-bitshift.t  view on Meta::CPAN

	[32.5, -32.5, 32],
	[32.5, -3000000000, 32],
	[32.5, -4000000000.23, 32],
	[32.5, -5000000000, 32],
	[32.5, -4294967298.479, 0],
	[32.5, -6442450942, 8],
	[32.5, -6442450943.674, 16],
	[32.5, -6442450944, 32],
	[32.5, -6442450945, 0],
	[32.5, -6442450946.74, 0],
	[2147483648, NaN, 2147483648],
	[2147483648, +0, 2147483648],
	[2147483648, -0, 2147483648],
	[2147483648, Infinity, 2147483648],
	[2147483648, -Infinity, 2147483648],
	[2147483648, 1, 1073741824],
	[2147483648, 32.5, 2147483648],
	[2147483648, 2147483648, 2147483648],
	[2147483648, 3000000000, 2147483648],
	[2147483648, 4000000000.23, 2147483648],
	[2147483648, 5000000000, 2147483648],

t/11.07-bitshift.t  view on Meta::CPAN

	[2147483648, -32.5, 2147483648],
	[2147483648, -3000000000, 2147483648],
	[2147483648, -4000000000.23, 2147483648],
	[2147483648, -5000000000, 2147483648],
	[2147483648, -4294967298.479, 2],
	[2147483648, -6442450942, 536870912],
	[2147483648, -6442450943.674, 1073741824],
	[2147483648, -6442450944, 2147483648],
	[2147483648, -6442450945, 1],
	[2147483648, -6442450946.74, 2],
	[3000000000, NaN, 3000000000],
	[3000000000, +0, 3000000000],
	[3000000000, -0, 3000000000],
	[3000000000, Infinity, 3000000000],
	[3000000000, -Infinity, 3000000000],
	[3000000000, 1, 1500000000],
	[3000000000, 32.5, 3000000000],
	[3000000000, 2147483648, 3000000000],
	[3000000000, 3000000000, 3000000000],
	[3000000000, 4000000000.23, 3000000000],
	[3000000000, 5000000000, 3000000000],

t/11.07-bitshift.t  view on Meta::CPAN

	[3000000000, -32.5, 3000000000],
	[3000000000, -3000000000, 3000000000],
	[3000000000, -4000000000.23, 3000000000],
	[3000000000, -5000000000, 3000000000],
	[3000000000, -4294967298.479, 2],
	[3000000000, -6442450942, 750000000],
	[3000000000, -6442450943.674, 1500000000],
	[3000000000, -6442450944, 3000000000],
	[3000000000, -6442450945, 1],
	[3000000000, -6442450946.74, 2],
	[4000000000.23, NaN, 4000000000],
	[4000000000.23, +0, 4000000000],
	[4000000000.23, -0, 4000000000],
	[4000000000.23, Infinity, 4000000000],
	[4000000000.23, -Infinity, 4000000000],
	[4000000000.23, 1, 2000000000],
	[4000000000.23, 32.5, 4000000000],
	[4000000000.23, 2147483648, 4000000000],
	[4000000000.23, 3000000000, 4000000000],
	[4000000000.23, 4000000000.23, 4000000000],
	[4000000000.23, 5000000000, 4000000000],

t/11.07-bitshift.t  view on Meta::CPAN

	[4000000000.23, -32.5, 4000000000],
	[4000000000.23, -3000000000, 4000000000],
	[4000000000.23, -4000000000.23, 4000000000],
	[4000000000.23, -5000000000, 4000000000],
	[4000000000.23, -4294967298.479, 3],
	[4000000000.23, -6442450942, 1000000000],
	[4000000000.23, -6442450943.674, 2000000000],
	[4000000000.23, -6442450944, 4000000000],
	[4000000000.23, -6442450945, 1],
	[4000000000.23, -6442450946.74, 3],
	[5000000000, NaN, 705032704],
	[5000000000, +0, 705032704],
	[5000000000, -0, 705032704],
	[5000000000, Infinity, 705032704],
	[5000000000, -Infinity, 705032704],
	[5000000000, 1, 352516352],
	[5000000000, 32.5, 705032704],
	[5000000000, 2147483648, 705032704],
	[5000000000, 3000000000, 705032704],
	[5000000000, 4000000000.23, 705032704],
	[5000000000, 5000000000, 705032704],

t/11.07-bitshift.t  view on Meta::CPAN

	[5000000000, -32.5, 705032704],
	[5000000000, -3000000000, 705032704],
	[5000000000, -4000000000.23, 705032704],
	[5000000000, -5000000000, 705032704],
	[5000000000, -4294967298.479, 0],
	[5000000000, -6442450942, 176258176],
	[5000000000, -6442450943.674, 352516352],
	[5000000000, -6442450944, 705032704],
	[5000000000, -6442450945, 0],
	[5000000000, -6442450946.74, 0],
	[4294967296, NaN, 0],
	[4294967296, +0, 0],
	[4294967296, -0, 0],
	[4294967296, Infinity, 0],
	[4294967296, -Infinity, 0],
	[4294967296, 1, 0],
	[4294967296, 32.5, 0],
	[4294967296, 2147483648, 0],
	[4294967296, 3000000000, 0],
	[4294967296, 4000000000.23, 0],
	[4294967296, 5000000000, 0],

t/11.07-bitshift.t  view on Meta::CPAN

	[4294967296, -32.5, 0],
	[4294967296, -3000000000, 0],
	[4294967296, -4000000000.23, 0],
	[4294967296, -5000000000, 0],
	[4294967296, -4294967298.479, 0],
	[4294967296, -6442450942, 0],
	[4294967296, -6442450943.674, 0],
	[4294967296, -6442450944, 0],
	[4294967296, -6442450945, 0],
	[4294967296, -6442450946.74, 0],
	[4294967298.479, NaN, 2],
	[4294967298.479, +0, 2],
	[4294967298.479, -0, 2],
	[4294967298.479, Infinity, 2],
	[4294967298.479, -Infinity, 2],
	[4294967298.479, 1, 1],
	[4294967298.479, 32.5, 2],
	[4294967298.479, 2147483648, 2],
	[4294967298.479, 3000000000, 2],
	[4294967298.479, 4000000000.23, 2],
	[4294967298.479, 5000000000, 2],

t/11.07-bitshift.t  view on Meta::CPAN

	[4294967298.479, -32.5, 2],
	[4294967298.479, -3000000000, 2],
	[4294967298.479, -4000000000.23, 2],
	[4294967298.479, -5000000000, 2],
	[4294967298.479, -4294967298.479, 0],
	[4294967298.479, -6442450942, 0],
	[4294967298.479, -6442450943.674, 1],
	[4294967298.479, -6442450944, 2],
	[4294967298.479, -6442450945, 0],
	[4294967298.479, -6442450946.74, 0],
	[6442450942, NaN, 2147483646],
	[6442450942, +0, 2147483646],
	[6442450942, -0, 2147483646],
	[6442450942, Infinity, 2147483646],
	[6442450942, -Infinity, 2147483646],
	[6442450942, 1, 1073741823],
	[6442450942, 32.5, 2147483646],
	[6442450942, 2147483648, 2147483646],
	[6442450942, 3000000000, 2147483646],
	[6442450942, 4000000000.23, 2147483646],
	[6442450942, 5000000000, 2147483646],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450942, -32.5, 2147483646],
	[6442450942, -3000000000, 2147483646],
	[6442450942, -4000000000.23, 2147483646],
	[6442450942, -5000000000, 2147483646],
	[6442450942, -4294967298.479, 1],
	[6442450942, -6442450942, 536870911],
	[6442450942, -6442450943.674, 1073741823],
	[6442450942, -6442450944, 2147483646],
	[6442450942, -6442450945, 0],
	[6442450942, -6442450946.74, 1],
	[6442450943.674, NaN, 2147483647],
	[6442450943.674, +0, 2147483647],
	[6442450943.674, -0, 2147483647],
	[6442450943.674, Infinity, 2147483647],
	[6442450943.674, -Infinity, 2147483647],
	[6442450943.674, 1, 1073741823],
	[6442450943.674, 32.5, 2147483647],
	[6442450943.674, 2147483648, 2147483647],
	[6442450943.674, 3000000000, 2147483647],
	[6442450943.674, 4000000000.23, 2147483647],
	[6442450943.674, 5000000000, 2147483647],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450943.674, -32.5, 2147483647],
	[6442450943.674, -3000000000, 2147483647],
	[6442450943.674, -4000000000.23, 2147483647],
	[6442450943.674, -5000000000, 2147483647],
	[6442450943.674, -4294967298.479, 1],
	[6442450943.674, -6442450942, 536870911],
	[6442450943.674, -6442450943.674, 1073741823],
	[6442450943.674, -6442450944, 2147483647],
	[6442450943.674, -6442450945, 0],
	[6442450943.674, -6442450946.74, 1],
	[6442450944, NaN, 2147483648],
	[6442450944, +0, 2147483648],
	[6442450944, -0, 2147483648],
	[6442450944, Infinity, 2147483648],
	[6442450944, -Infinity, 2147483648],
	[6442450944, 1, 1073741824],
	[6442450944, 32.5, 2147483648],
	[6442450944, 2147483648, 2147483648],
	[6442450944, 3000000000, 2147483648],
	[6442450944, 4000000000.23, 2147483648],
	[6442450944, 5000000000, 2147483648],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450944, -32.5, 2147483648],
	[6442450944, -3000000000, 2147483648],
	[6442450944, -4000000000.23, 2147483648],
	[6442450944, -5000000000, 2147483648],
	[6442450944, -4294967298.479, 2],
	[6442450944, -6442450942, 536870912],
	[6442450944, -6442450943.674, 1073741824],
	[6442450944, -6442450944, 2147483648],
	[6442450944, -6442450945, 1],
	[6442450944, -6442450946.74, 2],
	[6442450945, NaN, 2147483649],
	[6442450945, +0, 2147483649],
	[6442450945, -0, 2147483649],
	[6442450945, Infinity, 2147483649],
	[6442450945, -Infinity, 2147483649],
	[6442450945, 1, 1073741824],
	[6442450945, 32.5, 2147483649],
	[6442450945, 2147483648, 2147483649],
	[6442450945, 3000000000, 2147483649],
	[6442450945, 4000000000.23, 2147483649],
	[6442450945, 5000000000, 2147483649],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450945, -32.5, 2147483649],
	[6442450945, -3000000000, 2147483649],
	[6442450945, -4000000000.23, 2147483649],
	[6442450945, -5000000000, 2147483649],
	[6442450945, -4294967298.479, 2],
	[6442450945, -6442450942, 536870912],
	[6442450945, -6442450943.674, 1073741824],
	[6442450945, -6442450944, 2147483649],
	[6442450945, -6442450945, 1],
	[6442450945, -6442450946.74, 2],
	[6442450946.74, NaN, 2147483650],
	[6442450946.74, +0, 2147483650],
	[6442450946.74, -0, 2147483650],
	[6442450946.74, Infinity, 2147483650],
	[6442450946.74, -Infinity, 2147483650],
	[6442450946.74, 1, 1073741825],
	[6442450946.74, 32.5, 2147483650],
	[6442450946.74, 2147483648, 2147483650],
	[6442450946.74, 3000000000, 2147483650],
	[6442450946.74, 4000000000.23, 2147483650],
	[6442450946.74, 5000000000, 2147483650],

t/11.07-bitshift.t  view on Meta::CPAN

	[6442450946.74, -32.5, 2147483650],
	[6442450946.74, -3000000000, 2147483650],
	[6442450946.74, -4000000000.23, 2147483650],
	[6442450946.74, -5000000000, 2147483650],
	[6442450946.74, -4294967298.479, 2],
	[6442450946.74, -6442450942, 536870912],
	[6442450946.74, -6442450943.674, 1073741825],
	[6442450946.74, -6442450944, 2147483650],
	[6442450946.74, -6442450945, 1],
	[6442450946.74, -6442450946.74, 2],
	[-1, NaN, 4294967295],
	[-1, +0, 4294967295],
	[-1, -0, 4294967295],
	[-1, Infinity, 4294967295],
	[-1, -Infinity, 4294967295],
	[-1, 1, 2147483647],
	[-1, 32.5, 4294967295],
	[-1, 2147483648, 4294967295],
	[-1, 3000000000, 4294967295],
	[-1, 4000000000.23, 4294967295],
	[-1, 5000000000, 4294967295],

t/11.07-bitshift.t  view on Meta::CPAN

	[-1, -32.5, 4294967295],
	[-1, -3000000000, 4294967295],
	[-1, -4000000000.23, 4294967295],
	[-1, -5000000000, 4294967295],
	[-1, -4294967298.479, 3],
	[-1, -6442450942, 1073741823],
	[-1, -6442450943.674, 2147483647],
	[-1, -6442450944, 4294967295],
	[-1, -6442450945, 1],
	[-1, -6442450946.74, 3],
	[-32.5, NaN, 4294967264],
	[-32.5, +0, 4294967264],
	[-32.5, -0, 4294967264],
	[-32.5, Infinity, 4294967264],
	[-32.5, -Infinity, 4294967264],
	[-32.5, 1, 2147483632],
	[-32.5, 32.5, 4294967264],
	[-32.5, 2147483648, 4294967264],
	[-32.5, 3000000000, 4294967264],
	[-32.5, 4000000000.23, 4294967264],
	[-32.5, 5000000000, 4294967264],

t/11.07-bitshift.t  view on Meta::CPAN

	[-32.5, -32.5, 4294967264],
	[-32.5, -3000000000, 4294967264],
	[-32.5, -4000000000.23, 4294967264],
	[-32.5, -5000000000, 4294967264],
	[-32.5, -4294967298.479, 3],
	[-32.5, -6442450942, 1073741816],
	[-32.5, -6442450943.674, 2147483632],
	[-32.5, -6442450944, 4294967264],
	[-32.5, -6442450945, 1],
	[-32.5, -6442450946.74, 3],
	[-3000000000, NaN, 1294967296],
	[-3000000000, +0, 1294967296],
	[-3000000000, -0, 1294967296],
	[-3000000000, Infinity, 1294967296],
	[-3000000000, -Infinity, 1294967296],
	[-3000000000, 1, 647483648],
	[-3000000000, 32.5, 1294967296],
	[-3000000000, 2147483648, 1294967296],
	[-3000000000, 3000000000, 1294967296],
	[-3000000000, 4000000000.23, 1294967296],
	[-3000000000, 5000000000, 1294967296],

t/11.07-bitshift.t  view on Meta::CPAN

	[-3000000000, -32.5, 1294967296],
	[-3000000000, -3000000000, 1294967296],
	[-3000000000, -4000000000.23, 1294967296],
	[-3000000000, -5000000000, 1294967296],
	[-3000000000, -4294967298.479, 1],
	[-3000000000, -6442450942, 323741824],
	[-3000000000, -6442450943.674, 647483648],
	[-3000000000, -6442450944, 1294967296],
	[-3000000000, -6442450945, 0],
	[-3000000000, -6442450946.74, 1],
	[-4000000000.23, NaN, 294967296],
	[-4000000000.23, +0, 294967296],
	[-4000000000.23, -0, 294967296],
	[-4000000000.23, Infinity, 294967296],
	[-4000000000.23, -Infinity, 294967296],
	[-4000000000.23, 1, 147483648],
	[-4000000000.23, 32.5, 294967296],
	[-4000000000.23, 2147483648, 294967296],
	[-4000000000.23, 3000000000, 294967296],
	[-4000000000.23, 4000000000.23, 294967296],
	[-4000000000.23, 5000000000, 294967296],

t/11.07-bitshift.t  view on Meta::CPAN

	[-4000000000.23, -32.5, 294967296],
	[-4000000000.23, -3000000000, 294967296],
	[-4000000000.23, -4000000000.23, 294967296],
	[-4000000000.23, -5000000000, 294967296],
	[-4000000000.23, -4294967298.479, 0],
	[-4000000000.23, -6442450942, 73741824],
	[-4000000000.23, -6442450943.674, 147483648],
	[-4000000000.23, -6442450944, 294967296],
	[-4000000000.23, -6442450945, 0],
	[-4000000000.23, -6442450946.74, 0],
	[-5000000000, NaN, 3589934592],
	[-5000000000, +0, 3589934592],
	[-5000000000, -0, 3589934592],
	[-5000000000, Infinity, 3589934592],
	[-5000000000, -Infinity, 3589934592],
	[-5000000000, 1, 1794967296],
	[-5000000000, 32.5, 3589934592],
	[-5000000000, 2147483648, 3589934592],
	[-5000000000, 3000000000, 3589934592],
	[-5000000000, 4000000000.23, 3589934592],
	[-5000000000, 5000000000, 3589934592],

t/11.07-bitshift.t  view on Meta::CPAN

	[-5000000000, -32.5, 3589934592],
	[-5000000000, -3000000000, 3589934592],
	[-5000000000, -4000000000.23, 3589934592],
	[-5000000000, -5000000000, 3589934592],
	[-5000000000, -4294967298.479, 3],
	[-5000000000, -6442450942, 897483648],
	[-5000000000, -6442450943.674, 1794967296],
	[-5000000000, -6442450944, 3589934592],
	[-5000000000, -6442450945, 1],
	[-5000000000, -6442450946.74, 3],
	[-4294967298.479, NaN, 4294967294],
	[-4294967298.479, +0, 4294967294],
	[-4294967298.479, -0, 4294967294],
	[-4294967298.479, Infinity, 4294967294],
	[-4294967298.479, -Infinity, 4294967294],
	[-4294967298.479, 1, 2147483647],
	[-4294967298.479, 32.5, 4294967294],
	[-4294967298.479, 2147483648, 4294967294],
	[-4294967298.479, 3000000000, 4294967294],
	[-4294967298.479, 4000000000.23, 4294967294],
	[-4294967298.479, 5000000000, 4294967294],

t/11.07-bitshift.t  view on Meta::CPAN

	[-4294967298.479, -32.5, 4294967294],
	[-4294967298.479, -3000000000, 4294967294],
	[-4294967298.479, -4000000000.23, 4294967294],
	[-4294967298.479, -5000000000, 4294967294],
	[-4294967298.479, -4294967298.479, 3],
	[-4294967298.479, -6442450942, 1073741823],
	[-4294967298.479, -6442450943.674, 2147483647],
	[-4294967298.479, -6442450944, 4294967294],
	[-4294967298.479, -6442450945, 1],
	[-4294967298.479, -6442450946.74, 3],
	[-6442450942, NaN, 2147483650],
	[-6442450942, +0, 2147483650],
	[-6442450942, -0, 2147483650],
	[-6442450942, Infinity, 2147483650],
	[-6442450942, -Infinity, 2147483650],
	[-6442450942, 1, 1073741825],
	[-6442450942, 32.5, 2147483650],
	[-6442450942, 2147483648, 2147483650],
	[-6442450942, 3000000000, 2147483650],
	[-6442450942, 4000000000.23, 2147483650],
	[-6442450942, 5000000000, 2147483650],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450942, -32.5, 2147483650],
	[-6442450942, -3000000000, 2147483650],
	[-6442450942, -4000000000.23, 2147483650],
	[-6442450942, -5000000000, 2147483650],
	[-6442450942, -4294967298.479, 2],
	[-6442450942, -6442450942, 536870912],
	[-6442450942, -6442450943.674, 1073741825],
	[-6442450942, -6442450944, 2147483650],
	[-6442450942, -6442450945, 1],
	[-6442450942, -6442450946.74, 2],
	[-6442450943.674, NaN, 2147483649],
	[-6442450943.674, +0, 2147483649],
	[-6442450943.674, -0, 2147483649],
	[-6442450943.674, Infinity, 2147483649],
	[-6442450943.674, -Infinity, 2147483649],
	[-6442450943.674, 1, 1073741824],
	[-6442450943.674, 32.5, 2147483649],
	[-6442450943.674, 2147483648, 2147483649],
	[-6442450943.674, 3000000000, 2147483649],
	[-6442450943.674, 4000000000.23, 2147483649],
	[-6442450943.674, 5000000000, 2147483649],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450943.674, -32.5, 2147483649],
	[-6442450943.674, -3000000000, 2147483649],
	[-6442450943.674, -4000000000.23, 2147483649],
	[-6442450943.674, -5000000000, 2147483649],
	[-6442450943.674, -4294967298.479, 2],
	[-6442450943.674, -6442450942, 536870912],
	[-6442450943.674, -6442450943.674, 1073741824],
	[-6442450943.674, -6442450944, 2147483649],
	[-6442450943.674, -6442450945, 1],
	[-6442450943.674, -6442450946.74, 2],
	[-6442450944, NaN, 2147483648],
	[-6442450944, +0, 2147483648],
	[-6442450944, -0, 2147483648],
	[-6442450944, Infinity, 2147483648],
	[-6442450944, -Infinity, 2147483648],
	[-6442450944, 1, 1073741824],
	[-6442450944, 32.5, 2147483648],
	[-6442450944, 2147483648, 2147483648],
	[-6442450944, 3000000000, 2147483648],
	[-6442450944, 4000000000.23, 2147483648],
	[-6442450944, 5000000000, 2147483648],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450944, -32.5, 2147483648],
	[-6442450944, -3000000000, 2147483648],
	[-6442450944, -4000000000.23, 2147483648],
	[-6442450944, -5000000000, 2147483648],
	[-6442450944, -4294967298.479, 2],
	[-6442450944, -6442450942, 536870912],
	[-6442450944, -6442450943.674, 1073741824],
	[-6442450944, -6442450944, 2147483648],
	[-6442450944, -6442450945, 1],
	[-6442450944, -6442450946.74, 2],
	[-6442450945, NaN, 2147483647],
	[-6442450945, +0, 2147483647],
	[-6442450945, -0, 2147483647],
	[-6442450945, Infinity, 2147483647],
	[-6442450945, -Infinity, 2147483647],
	[-6442450945, 1, 1073741823],
	[-6442450945, 32.5, 2147483647],
	[-6442450945, 2147483648, 2147483647],
	[-6442450945, 3000000000, 2147483647],
	[-6442450945, 4000000000.23, 2147483647],
	[-6442450945, 5000000000, 2147483647],

t/11.07-bitshift.t  view on Meta::CPAN

	[-6442450945, -32.5, 2147483647],
	[-6442450945, -3000000000, 2147483647],
	[-6442450945, -4000000000.23, 2147483647],
	[-6442450945, -5000000000, 2147483647],
	[-6442450945, -4294967298.479, 1],
	[-6442450945, -6442450942, 536870911],
	[-6442450945, -6442450943.674, 1073741823],
	[-6442450945, -6442450944, 2147483647],
	[-6442450945, -6442450945, 0],
	[-6442450945, -6442450946.74, 1],
	[-6442450946.74, NaN, 2147483646],
	[-6442450946.74, +0, 2147483646],
	[-6442450946.74, -0, 2147483646],
	[-6442450946.74, Infinity, 2147483646],
	[-6442450946.74, -Infinity, 2147483646],
	[-6442450946.74, 1, 1073741823],
	[-6442450946.74, 32.5, 2147483646],
	[-6442450946.74, 2147483648, 2147483646],
	[-6442450946.74, 3000000000, 2147483646],
	[-6442450946.74, 4000000000.23, 2147483646],
	[-6442450946.74, 5000000000, 2147483646],

t/11.08-relational.t  view on Meta::CPAN

ok(new Number(34.2) < true === false, "number object < boolean")
ok(new Number(24.2) < "3" === false, "number object < string")
ok(new Number(34.2) < 73 === true, "number object < number")
ok(new Number(34.2) < {} === false, "number object < object")
ok(new Number(34.2) < new Number(34.2) === false, "number object < number object")


// ---------------------------------------------------
// 11 tests: number < number

ok(NaN < 1234 === false, 'NaN < anything')
ok(4312 < NaN === false, 'anything + NaN')
ok(273 < 273        === false, 'x < x')
ok(0 < -0           === false, '0 < -0')
ok(-0 < 0           === false, '-0 < +0')
ok(Infinity < 2892  === false, 'inf < anything')
ok(23278 < Infinity === true,  'anything < inf')
ok(233 < -Infinity  === false, 'anything < -inf')
ok(-Infinity < 2323 === true,  '-inf < anything')
ok(3 < 4            === true,  '3 < 4')
ok(4 < 3            === false, '4 < 3')

t/11.08-relational.t  view on Meta::CPAN

ok(new Number(34.2) > true === true, "number object > boolean")
ok(new Number(34.2) > "8" === true, "number object > string")
ok(new Number(34.2) > 73 === false, "number object > number")
ok(new Number(34.2) > {} === false, "number object > object")
ok(new Number(34.2) > new Number(34.2) === false, "number object > number object")


// ---------------------------------------------------
// 11 tests: number > number

ok(NaN > 1234 === false, 'NaN > anything')
ok(4312 > NaN === false, 'anything + NaN')
ok(273 > 273        === false, 'x > x')
ok(0 > -0           === false, '0 > -0')
ok(-0 > 0           === false, '-0 > +0')
ok(Infinity > 2892  === true, 'inf > anything')
ok(23278 > Infinity === false,  'anything > inf')
ok(233 > -Infinity  === true, 'anything > -inf')
ok(-Infinity > 2323 === false,  '-inf > anything')
ok(3 > 4            === false,  '3 > 4')
ok(4 > 3            === true, '4 > 3')

t/11.08-relational.t  view on Meta::CPAN

ok(new Number(34.2) <= true === false, "number object <= boolean")
ok(new Number(24.2) <= "3" === false, "number object <= string")
ok(new Number(34.2) <= 73 === true, "number object <= number")
ok(new Number(34.2) <= {} === false, "number object <= object")
ok(new Number(34.2) <= new Number(34.2) === true, "number object <= number object")


// ---------------------------------------------------
// 11 tests: number <= number

ok(NaN <= 1234 === false, 'NaN <= anything')
ok(4312 <= NaN === false, 'anything + NaN')
ok(273 <= 273        === true, 'x <= x')
ok(0 <= -0           === true, '0 <= -0')
ok(-0 <= 0           === true, '-0 <= +0')
ok(Infinity <= 2892  === false, 'inf <= anything')
ok(23278 <= Infinity === true,  'anything <= inf')
ok(233 <= -Infinity  === false, 'anything <= -inf')
ok(-Infinity <= 2323 === true,  '-inf <= anything')
ok(3 <= 4            === true,  '3 <= 4')
ok(4 <= 3            === false, '4 <= 3')

t/11.08-relational.t  view on Meta::CPAN

ok(new Number(34.2) >= true === true, "number object >= boolean")
ok(new Number(34.2) >= "8" === true, "number object >= string")
ok(new Number(34.2) >= 73 === false, "number object >= number")
ok(new Number(34.2) >= {} === false, "number object >= object")
ok(new Number(34.2) >= new Number(34.2) === true, "number object >= number object")


// ---------------------------------------------------
// 11 tests: number >= number

ok(NaN >= 1234 === false, 'NaN >= anything')
ok(4312 >= NaN === false, 'anything + NaN')
ok(273 >= 273        === true, 'x >= x')
ok(0 >= -0           === true, '0 >= -0')
ok(-0 >= 0           === true, '-0 >= +0')
ok(Infinity >= 2892  === true, 'inf >= anything')
ok(23278 >= Infinity === false,  'anything >= inf')
ok(233 >= -Infinity  === true, 'anything >= -inf')
ok(-Infinity >= 2323 === false,  '-inf >= anything')
ok(3 >= 4            === false,  '3 >= 4')
ok(4 >= 3            === true, '4 >= 3')

t/11.09-equality.t  view on Meta::CPAN

ok(true == 1 === true, "boolean == number")
ok(true == {} === false, "boolean == object")
ok(true == new Number(1) === true, "boolean == number object")
ok("3" == void 0 === false, "string == undefined")
ok("null" == null === false, "string == null")
ok("1" == true === true, "string == boolean")
ok("3" == "3.0" === false, "string == string")
ok("3.0" == 3 === true, "string == number")
ok("[object Object]" == {} === true, "string == object")
ok("03" == new Number(3) === true, "string == number object")
ok(NaN == void 0 === false, "number == undefined")
ok(0 == null === false, "number == null")
ok(1 == true === true, "number == boolean")
ok(23 == "023" === true, "number == string")
ok(73 == 73 === true, "number == number")
ok(73 == {} === false, "number == object")
ok(73 == new Number(34.2) === false, "number == number object")
ok({} == void 0 === false, "object == undefined")
ok({} == null === false, "object == null")
ok({} == true === false, "object == boolean")
ok({} == "[object Object]" === true, "object == string")

t/11.09-equality.t  view on Meta::CPAN

o = {}
ok(o == o === true, 'object == same object')
ok({} == new Number(34.2) === false, "object == number object")
ok(new Number(34.2) == void 0 === false, "number object == undefined")
ok(new Number(34.2) == null === false, "number object == null")
ok(new Number(34.2) == true === false, "number object == boolean")
ok(new Number(24.2) == "3" === false, "number object == string")
ok(new Number(34.2) == 73 === false, "number object == number")
ok(new Number(34.2) == {} === false, "number object == object")
ok(new Number(34.2) == new Number(34.2) === false, "number object == number object")
ok(NaN == NaN === false, 'nan == nan')

/* Test 56 */
expr = 1
is(expr == (expr = 2), false, 'lvalue == expr modifying the lvalue');

// ===================================================
// 11.9.2 !=
// ===================================================

/* Tests 57-107 */

t/11.09-equality.t  view on Meta::CPAN

ok(true != 1 === false, "boolean != number")
ok(true != {} === true, "boolean != object")
ok(true != new Number(1) === false, "boolean != number object")
ok("3" != void 0 === true, "string != undefined")
ok("0" != null === true, "string != null")
ok("1" != true === false, "string != boolean")
ok("3" != "3.0" === true, "string != string")
ok("3.0" != 3 === false, "string != number")
ok("[object Object]" != {} === false, "string != object")
ok("03" != new Number(3) === false, "string != number object")
ok(NaN != void 0 === true, "number != undefined")
ok(0 != null === true, "number != null")
ok(1 != true === false, "number != boolean")
ok(23 != "023" === false, "number != string")
ok(73 != 73 === false, "number != number")
ok(73 != {} === true, "number != object")
ok(73 != new Number(34.2) === true, "number != number object")
ok({} != void 0 === true, "object != undefined")
ok({} != null === true, "object != null")
ok({} != true === true, "object != boolean")
ok({} != "[object Object]" === false, "object != string")

t/11.09-equality.t  view on Meta::CPAN

o = {}
ok(o != o === false, 'object != same object')
ok({} != new Number(34.2) === true, "object != number object")
ok(new Number(34.2) != void 0 === true, "number object != undefined")
ok(new Number(34.2) != null === true, "number object != null")
ok(new Number(34.2) != true === true, "number object != boolean")
ok(new Number(24.2) != "3" === true, "number object != string")
ok(new Number(34.2) != 73 === true, "number object != number")
ok(new Number(34.2) != {} === true, "number object != object")
ok(new Number(34.2) != new Number(34.2) === true, "number object != number object")
ok(NaN != NaN === true, 'nan != nan')

/* Test 108 */
expr = 1
is(expr != (expr = 2), true, 'lvalue != expr modifying the lvalue');


// ===================================================
// 11.9.4 ===
// ===================================================

t/11.09-equality.t  view on Meta::CPAN

is("3" === "another stirng",  false, "string === different string")
is("3" === 23,  false, "string === number")
is("3" === {},  false, "string === object")
is("3" === new Number(24.2),  false, "string === number object")
is(73 === void 0,  false, "number === undefined")
is(73 === null,  false, "number === null")
is(73 === true,  false, "number === boolean")
is(23 === "3",  false, "number === string")
is(73 === 73,  true, "number === same number")
is(73 === 74,  false, "number === another number")
is(NaN === NaN, false, 'nan === nan')
is(73 === {},  false, "number === object")
is(73 === new Number(34.2),  false, "number === number object")
is({} === void 0,  false, "object === undefined")
is({} === null,  false, "object === null")
is({} === true,  false, "object === boolean")
is({} === "[p",  false, "object === string")
is({} === 73,  false, "object === number")
is({} === {},  false, "object === another object")
is(o === o,  true, "object === same object")
is({} === new Number(34.2),  false, "object === number object")

t/11.09-equality.t  view on Meta::CPAN

is("3" !== "another stirng", true, "string !== different string")
is("3" !== 23, true, "string !== number")
is("3" !== {}, true, "string !== object")
is("3" !== new Number(24.2), true, "string !== number object")
is(73 !== void 0, true, "number !== undefined")
is(73 !== null, true, "number !== null")
is(73 !== true, true, "number !== boolean")
is(23 !== "3", true, "number !== string")
is(73 !== 73, false, "number !== same number")
is(73 !== 74, true, "number !== another number")
is(NaN !== NaN, true, 'nan !== nan')
is(73 !== {}, true, "number !== object")
is(73 !== new Number(34.2), true, "number !== number object")
is({} !== void 0, true, "object !== undefined")
is({} !== null, true, "object !== null")
is({} !== true, true, "object !== boolean")
is({} !== "[p", true, "object !== string")
is({} !== 73, true, "object !== number")
is({} !== {}, true, "object !== another object")
is(o !== o, false, "object !== same object")
is({} !== new Number(34.2), true, "object !== number object")

t/11.10-binbit.t  view on Meta::CPAN

ok(( new Number(34.2) &  true    ) === 0,     "number object & boolean")
ok(( new Number(34.2) & "string" ) === 0,     "number object & string")
ok(( new Number(34.2) &  73      ) === 0,     "number object & number")
ok(( new Number(34.2) &  {}      ) === 0,     "number object & object")
ok(( new Number(34.2) &  new Number(34.2) ) === 34,
	"number object & number object")

/* Tests 52-892: number & number */

n2n = [
	[NaN, NaN, 0],
	[NaN, 0, 0],
	[NaN, 0, 0],
	[NaN, Infinity, 0],
	[NaN, -Infinity, 0],
	[NaN, 1, 0],
	[NaN, 32.5, 0],
	[NaN, 2147483648, 0],
	[NaN, 3000000000, 0],
	[NaN, 4000000000.23, 0],
	[NaN, 5000000000, 0],
	[NaN, 4294967296, 0],
	[NaN, 4294967298.479, 0],
	[NaN, 6442450942, 0],
	[NaN, 6442450943.674, 0],
	[NaN, 6442450944, 0],
	[NaN, 6442450945, 0],
	[NaN, 6442450946.74, 0],
	[NaN, -1, 0],
	[NaN, -32.5, 0],
	[NaN, -3000000000, 0],
	[NaN, -4000000000.23, 0],
	[NaN, -5000000000, 0],
	[NaN, -4294967298.479, 0],
	[NaN, -6442450942, 0],
	[NaN, -6442450943.674, 0],
	[NaN, -6442450944, 0],
	[NaN, -6442450945, 0],
	[NaN, -6442450946.74, 0],
	[0, NaN, 0],
	[0, 0, 0],
	[0, 0, 0],
	[0, Infinity, 0],
	[0, -Infinity, 0],
	[0, 1, 0],
	[0, 32.5, 0],
	[0, 2147483648, 0],
	[0, 3000000000, 0],
	[0, 4000000000.23, 0],
	[0, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[0, -32.5, 0],
	[0, -3000000000, 0],
	[0, -4000000000.23, 0],
	[0, -5000000000, 0],
	[0, -4294967298.479, 0],
	[0, -6442450942, 0],
	[0, -6442450943.674, 0],
	[0, -6442450944, 0],
	[0, -6442450945, 0],
	[0, -6442450946.74, 0],
	[0, NaN, 0],
	[0, 0, 0],
	[0, 0, 0],
	[0, Infinity, 0],
	[0, -Infinity, 0],
	[0, 1, 0],
	[0, 32.5, 0],
	[0, 2147483648, 0],
	[0, 3000000000, 0],
	[0, 4000000000.23, 0],
	[0, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[0, -32.5, 0],
	[0, -3000000000, 0],
	[0, -4000000000.23, 0],
	[0, -5000000000, 0],
	[0, -4294967298.479, 0],
	[0, -6442450942, 0],
	[0, -6442450943.674, 0],
	[0, -6442450944, 0],
	[0, -6442450945, 0],
	[0, -6442450946.74, 0],
	[Infinity, NaN, 0],
	[Infinity, 0, 0],
	[Infinity, 0, 0],
	[Infinity, Infinity, 0],
	[Infinity, -Infinity, 0],
	[Infinity, 1, 0],
	[Infinity, 32.5, 0],
	[Infinity, 2147483648, 0],
	[Infinity, 3000000000, 0],
	[Infinity, 4000000000.23, 0],
	[Infinity, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[Infinity, -32.5, 0],
	[Infinity, -3000000000, 0],
	[Infinity, -4000000000.23, 0],
	[Infinity, -5000000000, 0],
	[Infinity, -4294967298.479, 0],
	[Infinity, -6442450942, 0],
	[Infinity, -6442450943.674, 0],
	[Infinity, -6442450944, 0],
	[Infinity, -6442450945, 0],
	[Infinity, -6442450946.74, 0],
	[-Infinity, NaN, 0],
	[-Infinity, 0, 0],
	[-Infinity, 0, 0],
	[-Infinity, Infinity, 0],
	[-Infinity, -Infinity, 0],
	[-Infinity, 1, 0],
	[-Infinity, 32.5, 0],
	[-Infinity, 2147483648, 0],
	[-Infinity, 3000000000, 0],
	[-Infinity, 4000000000.23, 0],
	[-Infinity, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[-Infinity, -32.5, 0],
	[-Infinity, -3000000000, 0],
	[-Infinity, -4000000000.23, 0],
	[-Infinity, -5000000000, 0],
	[-Infinity, -4294967298.479, 0],
	[-Infinity, -6442450942, 0],
	[-Infinity, -6442450943.674, 0],
	[-Infinity, -6442450944, 0],
	[-Infinity, -6442450945, 0],
	[-Infinity, -6442450946.74, 0],
	[1, NaN, 0],
	[1, 0, 0],
	[1, 0, 0],
	[1, Infinity, 0],
	[1, -Infinity, 0],
	[1, 1, 1],
	[1, 32.5, 0],
	[1, 2147483648, 0],
	[1, 3000000000, 0],
	[1, 4000000000.23, 0],
	[1, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[1, -32.5, 0],
	[1, -3000000000, 0],
	[1, -4000000000.23, 0],
	[1, -5000000000, 0],
	[1, -4294967298.479, 0],
	[1, -6442450942, 0],
	[1, -6442450943.674, 1],
	[1, -6442450944, 0],
	[1, -6442450945, 1],
	[1, -6442450946.74, 0],
	[32.5, NaN, 0],
	[32.5, 0, 0],
	[32.5, 0, 0],
	[32.5, Infinity, 0],
	[32.5, -Infinity, 0],
	[32.5, 1, 0],
	[32.5, 32.5, 32],
	[32.5, 2147483648, 0],
	[32.5, 3000000000, 0],
	[32.5, 4000000000.23, 0],
	[32.5, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[32.5, -32.5, 32],
	[32.5, -3000000000, 0],
	[32.5, -4000000000.23, 0],
	[32.5, -5000000000, 0],
	[32.5, -4294967298.479, 32],
	[32.5, -6442450942, 0],
	[32.5, -6442450943.674, 0],
	[32.5, -6442450944, 0],
	[32.5, -6442450945, 32],
	[32.5, -6442450946.74, 32],
	[2147483648, NaN, 0],
	[2147483648, 0, 0],
	[2147483648, 0, 0],
	[2147483648, Infinity, 0],
	[2147483648, -Infinity, 0],
	[2147483648, 1, 0],
	[2147483648, 32.5, 0],
	[2147483648, 2147483648, -2147483648],
	[2147483648, 3000000000, -2147483648],
	[2147483648, 4000000000.23, -2147483648],
	[2147483648, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[2147483648, -32.5, -2147483648],
	[2147483648, -3000000000, 0],
	[2147483648, -4000000000.23, 0],
	[2147483648, -5000000000, -2147483648],
	[2147483648, -4294967298.479, -2147483648],
	[2147483648, -6442450942, -2147483648],
	[2147483648, -6442450943.674, -2147483648],
	[2147483648, -6442450944, -2147483648],
	[2147483648, -6442450945, 0],
	[2147483648, -6442450946.74, 0],
	[3000000000, NaN, 0],
	[3000000000, 0, 0],
	[3000000000, 0, 0],
	[3000000000, Infinity, 0],
	[3000000000, -Infinity, 0],
	[3000000000, 1, 0],
	[3000000000, 32.5, 0],
	[3000000000, 2147483648, -2147483648],
	[3000000000, 3000000000, -1294967296],
	[3000000000, 4000000000.23, -1572861952],
	[3000000000, 5000000000, 570446336],

t/11.10-binbit.t  view on Meta::CPAN

	[3000000000, -32.5, -1294967296],
	[3000000000, -3000000000, 512],
	[3000000000, -4000000000.23, 277895168],
	[3000000000, -5000000000, -1865413120],
	[3000000000, -4294967298.479, -1294967296],
	[3000000000, -6442450942, -2147483648],
	[3000000000, -6442450943.674, -2147483648],
	[3000000000, -6442450944, -2147483648],
	[3000000000, -6442450945, 852516352],
	[3000000000, -6442450946.74, 852516352],
	[4000000000.23, NaN, 0],
	[4000000000.23, 0, 0],
	[4000000000.23, 0, 0],
	[4000000000.23, Infinity, 0],
	[4000000000.23, -Infinity, 0],
	[4000000000.23, 1, 0],
	[4000000000.23, 32.5, 0],
	[4000000000.23, 2147483648, -2147483648],
	[4000000000.23, 3000000000, -1572861952],
	[4000000000.23, 4000000000.23, -294967296],
	[4000000000.23, 5000000000, 704716800],

t/11.10-binbit.t  view on Meta::CPAN

	[4000000000.23, -32.5, -294967296],
	[4000000000.23, -3000000000, 1277894656],
	[4000000000.23, -4000000000.23, 2048],
	[4000000000.23, -5000000000, -999684096],
	[4000000000.23, -4294967298.479, -294967296],
	[4000000000.23, -6442450942, -2147483648],
	[4000000000.23, -6442450943.674, -2147483648],
	[4000000000.23, -6442450944, -2147483648],
	[4000000000.23, -6442450945, 1852516352],
	[4000000000.23, -6442450946.74, 1852516352],
	[5000000000, NaN, 0],
	[5000000000, 0, 0],
	[5000000000, 0, 0],
	[5000000000, Infinity, 0],
	[5000000000, -Infinity, 0],
	[5000000000, 1, 0],
	[5000000000, 32.5, 0],
	[5000000000, 2147483648, 0],
	[5000000000, 3000000000, 570446336],
	[5000000000, 4000000000.23, 704716800],
	[5000000000, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[5000000000, -32.5, 705032704],
	[5000000000, -3000000000, 134586880],
	[5000000000, -4000000000.23, 315392],
	[5000000000, -5000000000, 512],
	[5000000000, -4294967298.479, 705032704],
	[5000000000, -6442450942, 0],
	[5000000000, -6442450943.674, 0],
	[5000000000, -6442450944, 0],
	[5000000000, -6442450945, 705032704],
	[5000000000, -6442450946.74, 705032704],
	[4294967296, NaN, 0],
	[4294967296, 0, 0],
	[4294967296, 0, 0],
	[4294967296, Infinity, 0],
	[4294967296, -Infinity, 0],
	[4294967296, 1, 0],
	[4294967296, 32.5, 0],
	[4294967296, 2147483648, 0],
	[4294967296, 3000000000, 0],
	[4294967296, 4000000000.23, 0],
	[4294967296, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[4294967296, -32.5, 0],
	[4294967296, -3000000000, 0],
	[4294967296, -4000000000.23, 0],
	[4294967296, -5000000000, 0],
	[4294967296, -4294967298.479, 0],
	[4294967296, -6442450942, 0],
	[4294967296, -6442450943.674, 0],
	[4294967296, -6442450944, 0],
	[4294967296, -6442450945, 0],
	[4294967296, -6442450946.74, 0],
	[4294967298.479, NaN, 0],
	[4294967298.479, 0, 0],
	[4294967298.479, 0, 0],
	[4294967298.479, Infinity, 0],
	[4294967298.479, -Infinity, 0],
	[4294967298.479, 1, 0],
	[4294967298.479, 32.5, 0],
	[4294967298.479, 2147483648, 0],
	[4294967298.479, 3000000000, 0],
	[4294967298.479, 4000000000.23, 0],
	[4294967298.479, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[4294967298.479, -32.5, 0],
	[4294967298.479, -3000000000, 0],
	[4294967298.479, -4000000000.23, 0],
	[4294967298.479, -5000000000, 0],
	[4294967298.479, -4294967298.479, 2],
	[4294967298.479, -6442450942, 2],
	[4294967298.479, -6442450943.674, 0],
	[4294967298.479, -6442450944, 0],
	[4294967298.479, -6442450945, 2],
	[4294967298.479, -6442450946.74, 2],
	[6442450942, NaN, 0],
	[6442450942, 0, 0],
	[6442450942, 0, 0],
	[6442450942, Infinity, 0],
	[6442450942, -Infinity, 0],
	[6442450942, 1, 0],
	[6442450942, 32.5, 32],
	[6442450942, 2147483648, 0],
	[6442450942, 3000000000, 852516352],
	[6442450942, 4000000000.23, 1852516352],
	[6442450942, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450942, -32.5, 2147483616],
	[6442450942, -3000000000, 1294967296],
	[6442450942, -4000000000.23, 294967296],
	[6442450942, -5000000000, 1442450944],
	[6442450942, -4294967298.479, 2147483646],
	[6442450942, -6442450942, 2],
	[6442450942, -6442450943.674, 0],
	[6442450942, -6442450944, 0],
	[6442450942, -6442450945, 2147483646],
	[6442450942, -6442450946.74, 2147483646],
	[6442450943.674, NaN, 0],
	[6442450943.674, 0, 0],
	[6442450943.674, 0, 0],
	[6442450943.674, Infinity, 0],
	[6442450943.674, -Infinity, 0],
	[6442450943.674, 1, 1],
	[6442450943.674, 32.5, 32],
	[6442450943.674, 2147483648, 0],
	[6442450943.674, 3000000000, 852516352],
	[6442450943.674, 4000000000.23, 1852516352],
	[6442450943.674, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450943.674, -32.5, 2147483616],
	[6442450943.674, -3000000000, 1294967296],
	[6442450943.674, -4000000000.23, 294967296],
	[6442450943.674, -5000000000, 1442450944],
	[6442450943.674, -4294967298.479, 2147483646],
	[6442450943.674, -6442450942, 2],
	[6442450943.674, -6442450943.674, 1],
	[6442450943.674, -6442450944, 0],
	[6442450943.674, -6442450945, 2147483647],
	[6442450943.674, -6442450946.74, 2147483646],
	[6442450944, NaN, 0],
	[6442450944, 0, 0],
	[6442450944, 0, 0],
	[6442450944, Infinity, 0],
	[6442450944, -Infinity, 0],
	[6442450944, 1, 0],
	[6442450944, 32.5, 0],
	[6442450944, 2147483648, -2147483648],
	[6442450944, 3000000000, -2147483648],
	[6442450944, 4000000000.23, -2147483648],
	[6442450944, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450944, -32.5, -2147483648],
	[6442450944, -3000000000, 0],
	[6442450944, -4000000000.23, 0],
	[6442450944, -5000000000, -2147483648],
	[6442450944, -4294967298.479, -2147483648],
	[6442450944, -6442450942, -2147483648],
	[6442450944, -6442450943.674, -2147483648],
	[6442450944, -6442450944, -2147483648],
	[6442450944, -6442450945, 0],
	[6442450944, -6442450946.74, 0],
	[6442450945, NaN, 0],
	[6442450945, 0, 0],
	[6442450945, 0, 0],
	[6442450945, Infinity, 0],
	[6442450945, -Infinity, 0],
	[6442450945, 1, 1],
	[6442450945, 32.5, 0],
	[6442450945, 2147483648, -2147483648],
	[6442450945, 3000000000, -2147483648],
	[6442450945, 4000000000.23, -2147483648],
	[6442450945, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450945, -32.5, -2147483648],
	[6442450945, -3000000000, 0],
	[6442450945, -4000000000.23, 0],
	[6442450945, -5000000000, -2147483648],
	[6442450945, -4294967298.479, -2147483648],
	[6442450945, -6442450942, -2147483648],
	[6442450945, -6442450943.674, -2147483647],
	[6442450945, -6442450944, -2147483648],
	[6442450945, -6442450945, 1],
	[6442450945, -6442450946.74, 0],
	[6442450946.74, NaN, 0],
	[6442450946.74, 0, 0],
	[6442450946.74, 0, 0],
	[6442450946.74, Infinity, 0],
	[6442450946.74, -Infinity, 0],
	[6442450946.74, 1, 0],
	[6442450946.74, 32.5, 0],
	[6442450946.74, 2147483648, -2147483648],
	[6442450946.74, 3000000000, -2147483648],
	[6442450946.74, 4000000000.23, -2147483648],
	[6442450946.74, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450946.74, -32.5, -2147483648],
	[6442450946.74, -3000000000, 0],
	[6442450946.74, -4000000000.23, 0],
	[6442450946.74, -5000000000, -2147483648],
	[6442450946.74, -4294967298.479, -2147483646],
	[6442450946.74, -6442450942, -2147483646],
	[6442450946.74, -6442450943.674, -2147483648],
	[6442450946.74, -6442450944, -2147483648],
	[6442450946.74, -6442450945, 2],
	[6442450946.74, -6442450946.74, 2],
	[-1, NaN, 0],
	[-1, 0, 0],
	[-1, 0, 0],
	[-1, Infinity, 0],
	[-1, -Infinity, 0],
	[-1, 1, 1],
	[-1, 32.5, 32],
	[-1, 2147483648, -2147483648],
	[-1, 3000000000, -1294967296],
	[-1, 4000000000.23, -294967296],
	[-1, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[-1, -32.5, -32],
	[-1, -3000000000, 1294967296],
	[-1, -4000000000.23, 294967296],
	[-1, -5000000000, -705032704],
	[-1, -4294967298.479, -2],
	[-1, -6442450942, -2147483646],
	[-1, -6442450943.674, -2147483647],
	[-1, -6442450944, -2147483648],
	[-1, -6442450945, 2147483647],
	[-1, -6442450946.74, 2147483646],
	[-32.5, NaN, 0],
	[-32.5, 0, 0],
	[-32.5, 0, 0],
	[-32.5, Infinity, 0],
	[-32.5, -Infinity, 0],
	[-32.5, 1, 0],
	[-32.5, 32.5, 32],
	[-32.5, 2147483648, -2147483648],
	[-32.5, 3000000000, -1294967296],
	[-32.5, 4000000000.23, -294967296],
	[-32.5, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[-32.5, -32.5, -32],
	[-32.5, -3000000000, 1294967296],
	[-32.5, -4000000000.23, 294967296],
	[-32.5, -5000000000, -705032704],
	[-32.5, -4294967298.479, -32],
	[-32.5, -6442450942, -2147483648],
	[-32.5, -6442450943.674, -2147483648],
	[-32.5, -6442450944, -2147483648],
	[-32.5, -6442450945, 2147483616],
	[-32.5, -6442450946.74, 2147483616],
	[-3000000000, NaN, 0],
	[-3000000000, 0, 0],
	[-3000000000, 0, 0],
	[-3000000000, Infinity, 0],
	[-3000000000, -Infinity, 0],
	[-3000000000, 1, 0],
	[-3000000000, 32.5, 0],
	[-3000000000, 2147483648, 0],
	[-3000000000, 3000000000, 512],
	[-3000000000, 4000000000.23, 1277894656],
	[-3000000000, 5000000000, 134586880],

t/11.10-binbit.t  view on Meta::CPAN

	[-3000000000, -32.5, 1294967296],
	[-3000000000, -3000000000, 1294967296],
	[-3000000000, -4000000000.23, 17072128],
	[-3000000000, -5000000000, 1160380928],
	[-3000000000, -4294967298.479, 1294967296],
	[-3000000000, -6442450942, 0],
	[-3000000000, -6442450943.674, 0],
	[-3000000000, -6442450944, 0],
	[-3000000000, -6442450945, 1294967296],
	[-3000000000, -6442450946.74, 1294967296],
	[-4000000000.23, NaN, 0],
	[-4000000000.23, 0, 0],
	[-4000000000.23, 0, 0],
	[-4000000000.23, Infinity, 0],
	[-4000000000.23, -Infinity, 0],
	[-4000000000.23, 1, 0],
	[-4000000000.23, 32.5, 0],
	[-4000000000.23, 2147483648, 0],
	[-4000000000.23, 3000000000, 277895168],
	[-4000000000.23, 4000000000.23, 2048],
	[-4000000000.23, 5000000000, 315392],

t/11.10-binbit.t  view on Meta::CPAN

	[-4000000000.23, -32.5, 294967296],
	[-4000000000.23, -3000000000, 17072128],
	[-4000000000.23, -4000000000.23, 294967296],
	[-4000000000.23, -5000000000, 294651904],
	[-4000000000.23, -4294967298.479, 294967296],
	[-4000000000.23, -6442450942, 0],
	[-4000000000.23, -6442450943.674, 0],
	[-4000000000.23, -6442450944, 0],
	[-4000000000.23, -6442450945, 294967296],
	[-4000000000.23, -6442450946.74, 294967296],
	[-5000000000, NaN, 0],
	[-5000000000, 0, 0],
	[-5000000000, 0, 0],
	[-5000000000, Infinity, 0],
	[-5000000000, -Infinity, 0],
	[-5000000000, 1, 0],
	[-5000000000, 32.5, 0],
	[-5000000000, 2147483648, -2147483648],
	[-5000000000, 3000000000, -1865413120],
	[-5000000000, 4000000000.23, -999684096],
	[-5000000000, 5000000000, 512],

t/11.10-binbit.t  view on Meta::CPAN

	[-5000000000, -32.5, -705032704],
	[-5000000000, -3000000000, 1160380928],
	[-5000000000, -4000000000.23, 294651904],
	[-5000000000, -5000000000, -705032704],
	[-5000000000, -4294967298.479, -705032704],
	[-5000000000, -6442450942, -2147483648],
	[-5000000000, -6442450943.674, -2147483648],
	[-5000000000, -6442450944, -2147483648],
	[-5000000000, -6442450945, 1442450944],
	[-5000000000, -6442450946.74, 1442450944],
	[-4294967298.479, NaN, 0],
	[-4294967298.479, 0, 0],
	[-4294967298.479, 0, 0],
	[-4294967298.479, Infinity, 0],
	[-4294967298.479, -Infinity, 0],
	[-4294967298.479, 1, 0],
	[-4294967298.479, 32.5, 32],
	[-4294967298.479, 2147483648, -2147483648],
	[-4294967298.479, 3000000000, -1294967296],
	[-4294967298.479, 4000000000.23, -294967296],
	[-4294967298.479, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[-4294967298.479, -32.5, -32],
	[-4294967298.479, -3000000000, 1294967296],
	[-4294967298.479, -4000000000.23, 294967296],
	[-4294967298.479, -5000000000, -705032704],
	[-4294967298.479, -4294967298.479, -2],
	[-4294967298.479, -6442450942, -2147483646],
	[-4294967298.479, -6442450943.674, -2147483648],
	[-4294967298.479, -6442450944, -2147483648],
	[-4294967298.479, -6442450945, 2147483646],
	[-4294967298.479, -6442450946.74, 2147483646],
	[-6442450942, NaN, 0],
	[-6442450942, 0, 0],
	[-6442450942, 0, 0],
	[-6442450942, Infinity, 0],
	[-6442450942, -Infinity, 0],
	[-6442450942, 1, 0],
	[-6442450942, 32.5, 0],
	[-6442450942, 2147483648, -2147483648],
	[-6442450942, 3000000000, -2147483648],
	[-6442450942, 4000000000.23, -2147483648],
	[-6442450942, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450942, -32.5, -2147483648],
	[-6442450942, -3000000000, 0],
	[-6442450942, -4000000000.23, 0],
	[-6442450942, -5000000000, -2147483648],
	[-6442450942, -4294967298.479, -2147483646],
	[-6442450942, -6442450942, -2147483646],
	[-6442450942, -6442450943.674, -2147483648],
	[-6442450942, -6442450944, -2147483648],
	[-6442450942, -6442450945, 2],
	[-6442450942, -6442450946.74, 2],
	[-6442450943.674, NaN, 0],
	[-6442450943.674, 0, 0],
	[-6442450943.674, 0, 0],
	[-6442450943.674, Infinity, 0],
	[-6442450943.674, -Infinity, 0],
	[-6442450943.674, 1, 1],
	[-6442450943.674, 32.5, 0],
	[-6442450943.674, 2147483648, -2147483648],
	[-6442450943.674, 3000000000, -2147483648],
	[-6442450943.674, 4000000000.23, -2147483648],
	[-6442450943.674, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450943.674, -32.5, -2147483648],
	[-6442450943.674, -3000000000, 0],
	[-6442450943.674, -4000000000.23, 0],
	[-6442450943.674, -5000000000, -2147483648],
	[-6442450943.674, -4294967298.479, -2147483648],
	[-6442450943.674, -6442450942, -2147483648],
	[-6442450943.674, -6442450943.674, -2147483647],
	[-6442450943.674, -6442450944, -2147483648],
	[-6442450943.674, -6442450945, 1],
	[-6442450943.674, -6442450946.74, 0],
	[-6442450944, NaN, 0],
	[-6442450944, 0, 0],
	[-6442450944, 0, 0],
	[-6442450944, Infinity, 0],
	[-6442450944, -Infinity, 0],
	[-6442450944, 1, 0],
	[-6442450944, 32.5, 0],
	[-6442450944, 2147483648, -2147483648],
	[-6442450944, 3000000000, -2147483648],
	[-6442450944, 4000000000.23, -2147483648],
	[-6442450944, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450944, -32.5, -2147483648],
	[-6442450944, -3000000000, 0],
	[-6442450944, -4000000000.23, 0],
	[-6442450944, -5000000000, -2147483648],
	[-6442450944, -4294967298.479, -2147483648],
	[-6442450944, -6442450942, -2147483648],
	[-6442450944, -6442450943.674, -2147483648],
	[-6442450944, -6442450944, -2147483648],
	[-6442450944, -6442450945, 0],
	[-6442450944, -6442450946.74, 0],
	[-6442450945, NaN, 0],
	[-6442450945, 0, 0],
	[-6442450945, 0, 0],
	[-6442450945, Infinity, 0],
	[-6442450945, -Infinity, 0],
	[-6442450945, 1, 1],
	[-6442450945, 32.5, 32],
	[-6442450945, 2147483648, 0],
	[-6442450945, 3000000000, 852516352],
	[-6442450945, 4000000000.23, 1852516352],
	[-6442450945, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450945, -32.5, 2147483616],
	[-6442450945, -3000000000, 1294967296],
	[-6442450945, -4000000000.23, 294967296],
	[-6442450945, -5000000000, 1442450944],
	[-6442450945, -4294967298.479, 2147483646],
	[-6442450945, -6442450942, 2],
	[-6442450945, -6442450943.674, 1],
	[-6442450945, -6442450944, 0],
	[-6442450945, -6442450945, 2147483647],
	[-6442450945, -6442450946.74, 2147483646],
	[-6442450946.74, NaN, 0],
	[-6442450946.74, 0, 0],
	[-6442450946.74, 0, 0],
	[-6442450946.74, Infinity, 0],
	[-6442450946.74, -Infinity, 0],
	[-6442450946.74, 1, 0],
	[-6442450946.74, 32.5, 32],
	[-6442450946.74, 2147483648, 0],
	[-6442450946.74, 3000000000, 852516352],
	[-6442450946.74, 4000000000.23, 1852516352],
	[-6442450946.74, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

ok(( new Number(34.2) ^  true    ) === 35,    "number object ^ boolean")
ok(( new Number(34.2) ^ "string" ) === 34,    "number object ^ string")
ok(( new Number(34.2) ^  73      ) === 107,   "number object ^ number")
ok(( new Number(34.2) ^  {}      ) === 34,    "number object ^ object")
ok(( new Number(34.2) ^  new Number(34.2) ) === 0,
	"number object ^ number object")

/* Tests 942-1782: numebr ^ number */

n2n = [
	[NaN, NaN, 0],
	[NaN, 0, 0],
	[NaN, 0, 0],
	[NaN, Infinity, 0],
	[NaN, -Infinity, 0],
	[NaN, 1, 1],
	[NaN, 32.5, 32],
	[NaN, 2147483648, -2147483648],
	[NaN, 3000000000, -1294967296],
	[NaN, 4000000000.23, -294967296],
	[NaN, 5000000000, 705032704],
	[NaN, 4294967296, 0],
	[NaN, 4294967298.479, 2],
	[NaN, 6442450942, 2147483646],
	[NaN, 6442450943.674, 2147483647],
	[NaN, 6442450944, -2147483648],
	[NaN, 6442450945, -2147483647],
	[NaN, 6442450946.74, -2147483646],
	[NaN, -1, -1],
	[NaN, -32.5, -32],
	[NaN, -3000000000, 1294967296],
	[NaN, -4000000000.23, 294967296],
	[NaN, -5000000000, -705032704],
	[NaN, -4294967298.479, -2],
	[NaN, -6442450942, -2147483646],
	[NaN, -6442450943.674, -2147483647],
	[NaN, -6442450944, -2147483648],
	[NaN, -6442450945, 2147483647],
	[NaN, -6442450946.74, 2147483646],
	[0, NaN, 0],
	[0, 0, 0],
	[0, 0, 0],
	[0, Infinity, 0],
	[0, -Infinity, 0],
	[0, 1, 1],
	[0, 32.5, 32],
	[0, 2147483648, -2147483648],
	[0, 3000000000, -1294967296],
	[0, 4000000000.23, -294967296],
	[0, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[0, -32.5, -32],
	[0, -3000000000, 1294967296],
	[0, -4000000000.23, 294967296],
	[0, -5000000000, -705032704],
	[0, -4294967298.479, -2],
	[0, -6442450942, -2147483646],
	[0, -6442450943.674, -2147483647],
	[0, -6442450944, -2147483648],
	[0, -6442450945, 2147483647],
	[0, -6442450946.74, 2147483646],
	[0, NaN, 0],
	[0, 0, 0],
	[0, 0, 0],
	[0, Infinity, 0],
	[0, -Infinity, 0],
	[0, 1, 1],
	[0, 32.5, 32],
	[0, 2147483648, -2147483648],
	[0, 3000000000, -1294967296],
	[0, 4000000000.23, -294967296],
	[0, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[0, -32.5, -32],
	[0, -3000000000, 1294967296],
	[0, -4000000000.23, 294967296],
	[0, -5000000000, -705032704],
	[0, -4294967298.479, -2],
	[0, -6442450942, -2147483646],
	[0, -6442450943.674, -2147483647],
	[0, -6442450944, -2147483648],
	[0, -6442450945, 2147483647],
	[0, -6442450946.74, 2147483646],
	[Infinity, NaN, 0],
	[Infinity, 0, 0],
	[Infinity, 0, 0],
	[Infinity, Infinity, 0],
	[Infinity, -Infinity, 0],
	[Infinity, 1, 1],
	[Infinity, 32.5, 32],
	[Infinity, 2147483648, -2147483648],
	[Infinity, 3000000000, -1294967296],
	[Infinity, 4000000000.23, -294967296],
	[Infinity, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[Infinity, -32.5, -32],
	[Infinity, -3000000000, 1294967296],
	[Infinity, -4000000000.23, 294967296],
	[Infinity, -5000000000, -705032704],
	[Infinity, -4294967298.479, -2],
	[Infinity, -6442450942, -2147483646],
	[Infinity, -6442450943.674, -2147483647],
	[Infinity, -6442450944, -2147483648],
	[Infinity, -6442450945, 2147483647],
	[Infinity, -6442450946.74, 2147483646],
	[-Infinity, NaN, 0],
	[-Infinity, 0, 0],
	[-Infinity, 0, 0],
	[-Infinity, Infinity, 0],
	[-Infinity, -Infinity, 0],
	[-Infinity, 1, 1],
	[-Infinity, 32.5, 32],
	[-Infinity, 2147483648, -2147483648],
	[-Infinity, 3000000000, -1294967296],
	[-Infinity, 4000000000.23, -294967296],
	[-Infinity, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[-Infinity, -32.5, -32],
	[-Infinity, -3000000000, 1294967296],
	[-Infinity, -4000000000.23, 294967296],
	[-Infinity, -5000000000, -705032704],
	[-Infinity, -4294967298.479, -2],
	[-Infinity, -6442450942, -2147483646],
	[-Infinity, -6442450943.674, -2147483647],
	[-Infinity, -6442450944, -2147483648],
	[-Infinity, -6442450945, 2147483647],
	[-Infinity, -6442450946.74, 2147483646],
	[1, NaN, 1],
	[1, 0, 1],
	[1, 0, 1],
	[1, Infinity, 1],
	[1, -Infinity, 1],
	[1, 1, 0],
	[1, 32.5, 33],
	[1, 2147483648, -2147483647],
	[1, 3000000000, -1294967295],
	[1, 4000000000.23, -294967295],
	[1, 5000000000, 705032705],

t/11.10-binbit.t  view on Meta::CPAN

	[1, -32.5, -31],
	[1, -3000000000, 1294967297],
	[1, -4000000000.23, 294967297],
	[1, -5000000000, -705032703],
	[1, -4294967298.479, -1],
	[1, -6442450942, -2147483645],
	[1, -6442450943.674, -2147483648],
	[1, -6442450944, -2147483647],
	[1, -6442450945, 2147483646],
	[1, -6442450946.74, 2147483647],
	[32.5, NaN, 32],
	[32.5, 0, 32],
	[32.5, 0, 32],
	[32.5, Infinity, 32],
	[32.5, -Infinity, 32],
	[32.5, 1, 33],
	[32.5, 32.5, 0],
	[32.5, 2147483648, -2147483616],
	[32.5, 3000000000, -1294967264],
	[32.5, 4000000000.23, -294967264],
	[32.5, 5000000000, 705032736],

t/11.10-binbit.t  view on Meta::CPAN

	[32.5, -32.5, -64],
	[32.5, -3000000000, 1294967328],
	[32.5, -4000000000.23, 294967328],
	[32.5, -5000000000, -705032672],
	[32.5, -4294967298.479, -34],
	[32.5, -6442450942, -2147483614],
	[32.5, -6442450943.674, -2147483615],
	[32.5, -6442450944, -2147483616],
	[32.5, -6442450945, 2147483615],
	[32.5, -6442450946.74, 2147483614],
	[2147483648, NaN, -2147483648],
	[2147483648, 0, -2147483648],
	[2147483648, 0, -2147483648],
	[2147483648, Infinity, -2147483648],
	[2147483648, -Infinity, -2147483648],
	[2147483648, 1, -2147483647],
	[2147483648, 32.5, -2147483616],
	[2147483648, 2147483648, 0],
	[2147483648, 3000000000, 852516352],
	[2147483648, 4000000000.23, 1852516352],
	[2147483648, 5000000000, -1442450944],

t/11.10-binbit.t  view on Meta::CPAN

	[2147483648, -32.5, 2147483616],
	[2147483648, -3000000000, -852516352],
	[2147483648, -4000000000.23, -1852516352],
	[2147483648, -5000000000, 1442450944],
	[2147483648, -4294967298.479, 2147483646],
	[2147483648, -6442450942, 2],
	[2147483648, -6442450943.674, 1],
	[2147483648, -6442450944, 0],
	[2147483648, -6442450945, -1],
	[2147483648, -6442450946.74, -2],
	[3000000000, NaN, -1294967296],
	[3000000000, 0, -1294967296],
	[3000000000, 0, -1294967296],
	[3000000000, Infinity, -1294967296],
	[3000000000, -Infinity, -1294967296],
	[3000000000, 1, -1294967295],
	[3000000000, 32.5, -1294967264],
	[3000000000, 2147483648, 852516352],
	[3000000000, 3000000000, 0],
	[3000000000, 4000000000.23, 1555789312],
	[3000000000, 5000000000, -1730827264],

t/11.10-binbit.t  view on Meta::CPAN

	[3000000000, -32.5, 1294967264],
	[3000000000, -3000000000, -1024],
	[3000000000, -4000000000.23, -1555790336],
	[3000000000, -5000000000, 1730826240],
	[3000000000, -4294967298.479, 1294967294],
	[3000000000, -6442450942, 852516354],
	[3000000000, -6442450943.674, 852516353],
	[3000000000, -6442450944, 852516352],
	[3000000000, -6442450945, -852516353],
	[3000000000, -6442450946.74, -852516354],
	[4000000000.23, NaN, -294967296],
	[4000000000.23, 0, -294967296],
	[4000000000.23, 0, -294967296],
	[4000000000.23, Infinity, -294967296],
	[4000000000.23, -Infinity, -294967296],
	[4000000000.23, 1, -294967295],
	[4000000000.23, 32.5, -294967264],
	[4000000000.23, 2147483648, 1852516352],
	[4000000000.23, 3000000000, 1555789312],
	[4000000000.23, 4000000000.23, 0],
	[4000000000.23, 5000000000, -999368192],

t/11.10-binbit.t  view on Meta::CPAN

	[4000000000.23, -32.5, 294967264],
	[4000000000.23, -3000000000, -1555789312],
	[4000000000.23, -4000000000.23, -4096],
	[4000000000.23, -5000000000, 999368192],
	[4000000000.23, -4294967298.479, 294967294],
	[4000000000.23, -6442450942, 1852516354],
	[4000000000.23, -6442450943.674, 1852516353],
	[4000000000.23, -6442450944, 1852516352],
	[4000000000.23, -6442450945, -1852516353],
	[4000000000.23, -6442450946.74, -1852516354],
	[5000000000, NaN, 705032704],
	[5000000000, 0, 705032704],
	[5000000000, 0, 705032704],
	[5000000000, Infinity, 705032704],
	[5000000000, -Infinity, 705032704],
	[5000000000, 1, 705032705],
	[5000000000, 32.5, 705032736],
	[5000000000, 2147483648, -1442450944],
	[5000000000, 3000000000, -1730827264],
	[5000000000, 4000000000.23, -999368192],
	[5000000000, 5000000000, 0],

t/11.10-binbit.t  view on Meta::CPAN

	[5000000000, -32.5, -705032736],
	[5000000000, -3000000000, 1730826240],
	[5000000000, -4000000000.23, 999369216],
	[5000000000, -5000000000, -1024],
	[5000000000, -4294967298.479, -705032706],
	[5000000000, -6442450942, -1442450942],
	[5000000000, -6442450943.674, -1442450943],
	[5000000000, -6442450944, -1442450944],
	[5000000000, -6442450945, 1442450943],
	[5000000000, -6442450946.74, 1442450942],
	[4294967296, NaN, 0],
	[4294967296, 0, 0],
	[4294967296, 0, 0],
	[4294967296, Infinity, 0],
	[4294967296, -Infinity, 0],
	[4294967296, 1, 1],
	[4294967296, 32.5, 32],
	[4294967296, 2147483648, -2147483648],
	[4294967296, 3000000000, -1294967296],
	[4294967296, 4000000000.23, -294967296],
	[4294967296, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[4294967296, -32.5, -32],
	[4294967296, -3000000000, 1294967296],
	[4294967296, -4000000000.23, 294967296],
	[4294967296, -5000000000, -705032704],
	[4294967296, -4294967298.479, -2],
	[4294967296, -6442450942, -2147483646],
	[4294967296, -6442450943.674, -2147483647],
	[4294967296, -6442450944, -2147483648],
	[4294967296, -6442450945, 2147483647],
	[4294967296, -6442450946.74, 2147483646],
	[4294967298.479, NaN, 2],
	[4294967298.479, 0, 2],
	[4294967298.479, 0, 2],
	[4294967298.479, Infinity, 2],
	[4294967298.479, -Infinity, 2],
	[4294967298.479, 1, 3],
	[4294967298.479, 32.5, 34],
	[4294967298.479, 2147483648, -2147483646],
	[4294967298.479, 3000000000, -1294967294],
	[4294967298.479, 4000000000.23, -294967294],
	[4294967298.479, 5000000000, 705032706],

t/11.10-binbit.t  view on Meta::CPAN

	[4294967298.479, -32.5, -30],
	[4294967298.479, -3000000000, 1294967298],
	[4294967298.479, -4000000000.23, 294967298],
	[4294967298.479, -5000000000, -705032702],
	[4294967298.479, -4294967298.479, -4],
	[4294967298.479, -6442450942, -2147483648],
	[4294967298.479, -6442450943.674, -2147483645],
	[4294967298.479, -6442450944, -2147483646],
	[4294967298.479, -6442450945, 2147483645],
	[4294967298.479, -6442450946.74, 2147483644],
	[6442450942, NaN, 2147483646],
	[6442450942, 0, 2147483646],
	[6442450942, 0, 2147483646],
	[6442450942, Infinity, 2147483646],
	[6442450942, -Infinity, 2147483646],
	[6442450942, 1, 2147483647],
	[6442450942, 32.5, 2147483614],
	[6442450942, 2147483648, -2],
	[6442450942, 3000000000, -852516354],
	[6442450942, 4000000000.23, -1852516354],
	[6442450942, 5000000000, 1442450942],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450942, -32.5, -2147483618],
	[6442450942, -3000000000, 852516350],
	[6442450942, -4000000000.23, 1852516350],
	[6442450942, -5000000000, -1442450946],
	[6442450942, -4294967298.479, -2147483648],
	[6442450942, -6442450942, -4],
	[6442450942, -6442450943.674, -1],
	[6442450942, -6442450944, -2],
	[6442450942, -6442450945, 1],
	[6442450942, -6442450946.74, 0],
	[6442450943.674, NaN, 2147483647],
	[6442450943.674, 0, 2147483647],
	[6442450943.674, 0, 2147483647],
	[6442450943.674, Infinity, 2147483647],
	[6442450943.674, -Infinity, 2147483647],
	[6442450943.674, 1, 2147483646],
	[6442450943.674, 32.5, 2147483615],
	[6442450943.674, 2147483648, -1],
	[6442450943.674, 3000000000, -852516353],
	[6442450943.674, 4000000000.23, -1852516353],
	[6442450943.674, 5000000000, 1442450943],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450943.674, -32.5, -2147483617],
	[6442450943.674, -3000000000, 852516351],
	[6442450943.674, -4000000000.23, 1852516351],
	[6442450943.674, -5000000000, -1442450945],
	[6442450943.674, -4294967298.479, -2147483647],
	[6442450943.674, -6442450942, -3],
	[6442450943.674, -6442450943.674, -2],
	[6442450943.674, -6442450944, -1],
	[6442450943.674, -6442450945, 0],
	[6442450943.674, -6442450946.74, 1],
	[6442450944, NaN, -2147483648],
	[6442450944, 0, -2147483648],
	[6442450944, 0, -2147483648],
	[6442450944, Infinity, -2147483648],
	[6442450944, -Infinity, -2147483648],
	[6442450944, 1, -2147483647],
	[6442450944, 32.5, -2147483616],
	[6442450944, 2147483648, 0],
	[6442450944, 3000000000, 852516352],
	[6442450944, 4000000000.23, 1852516352],
	[6442450944, 5000000000, -1442450944],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450944, -32.5, 2147483616],
	[6442450944, -3000000000, -852516352],
	[6442450944, -4000000000.23, -1852516352],
	[6442450944, -5000000000, 1442450944],
	[6442450944, -4294967298.479, 2147483646],
	[6442450944, -6442450942, 2],
	[6442450944, -6442450943.674, 1],
	[6442450944, -6442450944, 0],
	[6442450944, -6442450945, -1],
	[6442450944, -6442450946.74, -2],
	[6442450945, NaN, -2147483647],
	[6442450945, 0, -2147483647],
	[6442450945, 0, -2147483647],
	[6442450945, Infinity, -2147483647],
	[6442450945, -Infinity, -2147483647],
	[6442450945, 1, -2147483648],
	[6442450945, 32.5, -2147483615],
	[6442450945, 2147483648, 1],
	[6442450945, 3000000000, 852516353],
	[6442450945, 4000000000.23, 1852516353],
	[6442450945, 5000000000, -1442450943],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450945, -32.5, 2147483617],
	[6442450945, -3000000000, -852516351],
	[6442450945, -4000000000.23, -1852516351],
	[6442450945, -5000000000, 1442450945],
	[6442450945, -4294967298.479, 2147483647],
	[6442450945, -6442450942, 3],
	[6442450945, -6442450943.674, 0],
	[6442450945, -6442450944, 1],
	[6442450945, -6442450945, -2],
	[6442450945, -6442450946.74, -1],
	[6442450946.74, NaN, -2147483646],
	[6442450946.74, 0, -2147483646],
	[6442450946.74, 0, -2147483646],
	[6442450946.74, Infinity, -2147483646],
	[6442450946.74, -Infinity, -2147483646],
	[6442450946.74, 1, -2147483645],
	[6442450946.74, 32.5, -2147483614],
	[6442450946.74, 2147483648, 2],
	[6442450946.74, 3000000000, 852516354],
	[6442450946.74, 4000000000.23, 1852516354],
	[6442450946.74, 5000000000, -1442450942],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450946.74, -32.5, 2147483618],
	[6442450946.74, -3000000000, -852516350],
	[6442450946.74, -4000000000.23, -1852516350],
	[6442450946.74, -5000000000, 1442450946],
	[6442450946.74, -4294967298.479, 2147483644],
	[6442450946.74, -6442450942, 0],
	[6442450946.74, -6442450943.674, 3],
	[6442450946.74, -6442450944, 2],
	[6442450946.74, -6442450945, -3],
	[6442450946.74, -6442450946.74, -4],
	[-1, NaN, -1],
	[-1, 0, -1],
	[-1, 0, -1],
	[-1, Infinity, -1],
	[-1, -Infinity, -1],
	[-1, 1, -2],
	[-1, 32.5, -33],
	[-1, 2147483648, 2147483647],
	[-1, 3000000000, 1294967295],
	[-1, 4000000000.23, 294967295],
	[-1, 5000000000, -705032705],

t/11.10-binbit.t  view on Meta::CPAN

	[-1, -32.5, 31],
	[-1, -3000000000, -1294967297],
	[-1, -4000000000.23, -294967297],
	[-1, -5000000000, 705032703],
	[-1, -4294967298.479, 1],
	[-1, -6442450942, 2147483645],
	[-1, -6442450943.674, 2147483646],
	[-1, -6442450944, 2147483647],
	[-1, -6442450945, -2147483648],
	[-1, -6442450946.74, -2147483647],
	[-32.5, NaN, -32],
	[-32.5, 0, -32],
	[-32.5, 0, -32],
	[-32.5, Infinity, -32],
	[-32.5, -Infinity, -32],
	[-32.5, 1, -31],
	[-32.5, 32.5, -64],
	[-32.5, 2147483648, 2147483616],
	[-32.5, 3000000000, 1294967264],
	[-32.5, 4000000000.23, 294967264],
	[-32.5, 5000000000, -705032736],

t/11.10-binbit.t  view on Meta::CPAN

	[-32.5, -32.5, 0],
	[-32.5, -3000000000, -1294967328],
	[-32.5, -4000000000.23, -294967328],
	[-32.5, -5000000000, 705032672],
	[-32.5, -4294967298.479, 30],
	[-32.5, -6442450942, 2147483618],
	[-32.5, -6442450943.674, 2147483617],
	[-32.5, -6442450944, 2147483616],
	[-32.5, -6442450945, -2147483617],
	[-32.5, -6442450946.74, -2147483618],
	[-3000000000, NaN, 1294967296],
	[-3000000000, 0, 1294967296],
	[-3000000000, 0, 1294967296],
	[-3000000000, Infinity, 1294967296],
	[-3000000000, -Infinity, 1294967296],
	[-3000000000, 1, 1294967297],
	[-3000000000, 32.5, 1294967328],
	[-3000000000, 2147483648, -852516352],
	[-3000000000, 3000000000, -1024],
	[-3000000000, 4000000000.23, -1555789312],
	[-3000000000, 5000000000, 1730826240],

t/11.10-binbit.t  view on Meta::CPAN

	[-3000000000, -32.5, -1294967328],
	[-3000000000, -3000000000, 0],
	[-3000000000, -4000000000.23, 1555790336],
	[-3000000000, -5000000000, -1730827264],
	[-3000000000, -4294967298.479, -1294967298],
	[-3000000000, -6442450942, -852516350],
	[-3000000000, -6442450943.674, -852516351],
	[-3000000000, -6442450944, -852516352],
	[-3000000000, -6442450945, 852516351],
	[-3000000000, -6442450946.74, 852516350],
	[-4000000000.23, NaN, 294967296],
	[-4000000000.23, 0, 294967296],
	[-4000000000.23, 0, 294967296],
	[-4000000000.23, Infinity, 294967296],
	[-4000000000.23, -Infinity, 294967296],
	[-4000000000.23, 1, 294967297],
	[-4000000000.23, 32.5, 294967328],
	[-4000000000.23, 2147483648, -1852516352],
	[-4000000000.23, 3000000000, -1555790336],
	[-4000000000.23, 4000000000.23, -4096],
	[-4000000000.23, 5000000000, 999369216],

t/11.10-binbit.t  view on Meta::CPAN

	[-4000000000.23, -32.5, -294967328],
	[-4000000000.23, -3000000000, 1555790336],
	[-4000000000.23, -4000000000.23, 0],
	[-4000000000.23, -5000000000, -999369216],
	[-4000000000.23, -4294967298.479, -294967298],
	[-4000000000.23, -6442450942, -1852516350],
	[-4000000000.23, -6442450943.674, -1852516351],
	[-4000000000.23, -6442450944, -1852516352],
	[-4000000000.23, -6442450945, 1852516351],
	[-4000000000.23, -6442450946.74, 1852516350],
	[-5000000000, NaN, -705032704],
	[-5000000000, 0, -705032704],
	[-5000000000, 0, -705032704],
	[-5000000000, Infinity, -705032704],
	[-5000000000, -Infinity, -705032704],
	[-5000000000, 1, -705032703],
	[-5000000000, 32.5, -705032672],
	[-5000000000, 2147483648, 1442450944],
	[-5000000000, 3000000000, 1730826240],
	[-5000000000, 4000000000.23, 999368192],
	[-5000000000, 5000000000, -1024],

t/11.10-binbit.t  view on Meta::CPAN

	[-5000000000, -32.5, 705032672],
	[-5000000000, -3000000000, -1730827264],
	[-5000000000, -4000000000.23, -999369216],
	[-5000000000, -5000000000, 0],
	[-5000000000, -4294967298.479, 705032702],
	[-5000000000, -6442450942, 1442450946],
	[-5000000000, -6442450943.674, 1442450945],
	[-5000000000, -6442450944, 1442450944],
	[-5000000000, -6442450945, -1442450945],
	[-5000000000, -6442450946.74, -1442450946],
	[-4294967298.479, NaN, -2],
	[-4294967298.479, 0, -2],
	[-4294967298.479, 0, -2],
	[-4294967298.479, Infinity, -2],
	[-4294967298.479, -Infinity, -2],
	[-4294967298.479, 1, -1],
	[-4294967298.479, 32.5, -34],
	[-4294967298.479, 2147483648, 2147483646],
	[-4294967298.479, 3000000000, 1294967294],
	[-4294967298.479, 4000000000.23, 294967294],
	[-4294967298.479, 5000000000, -705032706],

t/11.10-binbit.t  view on Meta::CPAN

	[-4294967298.479, -32.5, 30],
	[-4294967298.479, -3000000000, -1294967298],
	[-4294967298.479, -4000000000.23, -294967298],
	[-4294967298.479, -5000000000, 705032702],
	[-4294967298.479, -4294967298.479, 0],
	[-4294967298.479, -6442450942, 2147483644],
	[-4294967298.479, -6442450943.674, 2147483647],
	[-4294967298.479, -6442450944, 2147483646],
	[-4294967298.479, -6442450945, -2147483647],
	[-4294967298.479, -6442450946.74, -2147483648],
	[-6442450942, NaN, -2147483646],
	[-6442450942, 0, -2147483646],
	[-6442450942, 0, -2147483646],
	[-6442450942, Infinity, -2147483646],
	[-6442450942, -Infinity, -2147483646],
	[-6442450942, 1, -2147483645],
	[-6442450942, 32.5, -2147483614],
	[-6442450942, 2147483648, 2],
	[-6442450942, 3000000000, 852516354],
	[-6442450942, 4000000000.23, 1852516354],
	[-6442450942, 5000000000, -1442450942],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450942, -32.5, 2147483618],
	[-6442450942, -3000000000, -852516350],
	[-6442450942, -4000000000.23, -1852516350],
	[-6442450942, -5000000000, 1442450946],
	[-6442450942, -4294967298.479, 2147483644],
	[-6442450942, -6442450942, 0],
	[-6442450942, -6442450943.674, 3],
	[-6442450942, -6442450944, 2],
	[-6442450942, -6442450945, -3],
	[-6442450942, -6442450946.74, -4],
	[-6442450943.674, NaN, -2147483647],
	[-6442450943.674, 0, -2147483647],
	[-6442450943.674, 0, -2147483647],
	[-6442450943.674, Infinity, -2147483647],
	[-6442450943.674, -Infinity, -2147483647],
	[-6442450943.674, 1, -2147483648],
	[-6442450943.674, 32.5, -2147483615],
	[-6442450943.674, 2147483648, 1],
	[-6442450943.674, 3000000000, 852516353],
	[-6442450943.674, 4000000000.23, 1852516353],
	[-6442450943.674, 5000000000, -1442450943],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450943.674, -32.5, 2147483617],
	[-6442450943.674, -3000000000, -852516351],
	[-6442450943.674, -4000000000.23, -1852516351],
	[-6442450943.674, -5000000000, 1442450945],
	[-6442450943.674, -4294967298.479, 2147483647],
	[-6442450943.674, -6442450942, 3],
	[-6442450943.674, -6442450943.674, 0],
	[-6442450943.674, -6442450944, 1],
	[-6442450943.674, -6442450945, -2],
	[-6442450943.674, -6442450946.74, -1],
	[-6442450944, NaN, -2147483648],
	[-6442450944, 0, -2147483648],
	[-6442450944, 0, -2147483648],
	[-6442450944, Infinity, -2147483648],
	[-6442450944, -Infinity, -2147483648],
	[-6442450944, 1, -2147483647],
	[-6442450944, 32.5, -2147483616],
	[-6442450944, 2147483648, 0],
	[-6442450944, 3000000000, 852516352],
	[-6442450944, 4000000000.23, 1852516352],
	[-6442450944, 5000000000, -1442450944],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450944, -32.5, 2147483616],
	[-6442450944, -3000000000, -852516352],
	[-6442450944, -4000000000.23, -1852516352],
	[-6442450944, -5000000000, 1442450944],
	[-6442450944, -4294967298.479, 2147483646],
	[-6442450944, -6442450942, 2],
	[-6442450944, -6442450943.674, 1],
	[-6442450944, -6442450944, 0],
	[-6442450944, -6442450945, -1],
	[-6442450944, -6442450946.74, -2],
	[-6442450945, NaN, 2147483647],
	[-6442450945, 0, 2147483647],
	[-6442450945, 0, 2147483647],
	[-6442450945, Infinity, 2147483647],
	[-6442450945, -Infinity, 2147483647],
	[-6442450945, 1, 2147483646],
	[-6442450945, 32.5, 2147483615],
	[-6442450945, 2147483648, -1],
	[-6442450945, 3000000000, -852516353],
	[-6442450945, 4000000000.23, -1852516353],
	[-6442450945, 5000000000, 1442450943],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450945, -32.5, -2147483617],
	[-6442450945, -3000000000, 852516351],
	[-6442450945, -4000000000.23, 1852516351],
	[-6442450945, -5000000000, -1442450945],
	[-6442450945, -4294967298.479, -2147483647],
	[-6442450945, -6442450942, -3],
	[-6442450945, -6442450943.674, -2],
	[-6442450945, -6442450944, -1],
	[-6442450945, -6442450945, 0],
	[-6442450945, -6442450946.74, 1],
	[-6442450946.74, NaN, 2147483646],
	[-6442450946.74, 0, 2147483646],
	[-6442450946.74, 0, 2147483646],
	[-6442450946.74, Infinity, 2147483646],
	[-6442450946.74, -Infinity, 2147483646],
	[-6442450946.74, 1, 2147483647],
	[-6442450946.74, 32.5, 2147483614],
	[-6442450946.74, 2147483648, -2],
	[-6442450946.74, 3000000000, -852516354],
	[-6442450946.74, 4000000000.23, -1852516354],
	[-6442450946.74, 5000000000, 1442450942],

t/11.10-binbit.t  view on Meta::CPAN

ok(( new Number(34.2) | "string" ) === 34,    "number object | string")
ok(( new Number(34.2) |  73      ) === 107,   "number object | number")
ok(( new Number(34.2) |  {}      ) === 34,    "number object | object")
ok(( new Number(34.2) |  new Number(34.2) ) === 34,
	"number object | number object")


/* Tests 1832-2672 */

n2n = [
	[NaN, NaN, 0],
	[NaN, 0, 0],
	[NaN, 0, 0],
	[NaN, Infinity, 0],
	[NaN, -Infinity, 0],
	[NaN, 1, 1],
	[NaN, 32.5, 32],
	[NaN, 2147483648, -2147483648],
	[NaN, 3000000000, -1294967296],
	[NaN, 4000000000.23, -294967296],
	[NaN, 5000000000, 705032704],
	[NaN, 4294967296, 0],
	[NaN, 4294967298.479, 2],
	[NaN, 6442450942, 2147483646],
	[NaN, 6442450943.674, 2147483647],
	[NaN, 6442450944, -2147483648],
	[NaN, 6442450945, -2147483647],
	[NaN, 6442450946.74, -2147483646],
	[NaN, -1, -1],
	[NaN, -32.5, -32],
	[NaN, -3000000000, 1294967296],
	[NaN, -4000000000.23, 294967296],
	[NaN, -5000000000, -705032704],
	[NaN, -4294967298.479, -2],
	[NaN, -6442450942, -2147483646],
	[NaN, -6442450943.674, -2147483647],
	[NaN, -6442450944, -2147483648],
	[NaN, -6442450945, 2147483647],
	[NaN, -6442450946.74, 2147483646],
	[0, NaN, 0],
	[0, 0, 0],
	[0, 0, 0],
	[0, Infinity, 0],
	[0, -Infinity, 0],
	[0, 1, 1],
	[0, 32.5, 32],
	[0, 2147483648, -2147483648],
	[0, 3000000000, -1294967296],
	[0, 4000000000.23, -294967296],
	[0, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[0, -32.5, -32],
	[0, -3000000000, 1294967296],
	[0, -4000000000.23, 294967296],
	[0, -5000000000, -705032704],
	[0, -4294967298.479, -2],
	[0, -6442450942, -2147483646],
	[0, -6442450943.674, -2147483647],
	[0, -6442450944, -2147483648],
	[0, -6442450945, 2147483647],
	[0, -6442450946.74, 2147483646],
	[0, NaN, 0],
	[0, 0, 0],
	[0, 0, 0],
	[0, Infinity, 0],
	[0, -Infinity, 0],
	[0, 1, 1],
	[0, 32.5, 32],
	[0, 2147483648, -2147483648],
	[0, 3000000000, -1294967296],
	[0, 4000000000.23, -294967296],
	[0, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[0, -32.5, -32],
	[0, -3000000000, 1294967296],
	[0, -4000000000.23, 294967296],
	[0, -5000000000, -705032704],
	[0, -4294967298.479, -2],
	[0, -6442450942, -2147483646],
	[0, -6442450943.674, -2147483647],
	[0, -6442450944, -2147483648],
	[0, -6442450945, 2147483647],
	[0, -6442450946.74, 2147483646],
	[Infinity, NaN, 0],
	[Infinity, 0, 0],
	[Infinity, 0, 0],
	[Infinity, Infinity, 0],
	[Infinity, -Infinity, 0],
	[Infinity, 1, 1],
	[Infinity, 32.5, 32],
	[Infinity, 2147483648, -2147483648],
	[Infinity, 3000000000, -1294967296],
	[Infinity, 4000000000.23, -294967296],
	[Infinity, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[Infinity, -32.5, -32],
	[Infinity, -3000000000, 1294967296],
	[Infinity, -4000000000.23, 294967296],
	[Infinity, -5000000000, -705032704],
	[Infinity, -4294967298.479, -2],
	[Infinity, -6442450942, -2147483646],
	[Infinity, -6442450943.674, -2147483647],
	[Infinity, -6442450944, -2147483648],
	[Infinity, -6442450945, 2147483647],
	[Infinity, -6442450946.74, 2147483646],
	[-Infinity, NaN, 0],
	[-Infinity, 0, 0],
	[-Infinity, 0, 0],
	[-Infinity, Infinity, 0],
	[-Infinity, -Infinity, 0],
	[-Infinity, 1, 1],
	[-Infinity, 32.5, 32],
	[-Infinity, 2147483648, -2147483648],
	[-Infinity, 3000000000, -1294967296],
	[-Infinity, 4000000000.23, -294967296],
	[-Infinity, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[-Infinity, -32.5, -32],
	[-Infinity, -3000000000, 1294967296],
	[-Infinity, -4000000000.23, 294967296],
	[-Infinity, -5000000000, -705032704],
	[-Infinity, -4294967298.479, -2],
	[-Infinity, -6442450942, -2147483646],
	[-Infinity, -6442450943.674, -2147483647],
	[-Infinity, -6442450944, -2147483648],
	[-Infinity, -6442450945, 2147483647],
	[-Infinity, -6442450946.74, 2147483646],
	[1, NaN, 1],
	[1, 0, 1],
	[1, 0, 1],
	[1, Infinity, 1],
	[1, -Infinity, 1],
	[1, 1, 1],
	[1, 32.5, 33],
	[1, 2147483648, -2147483647],
	[1, 3000000000, -1294967295],
	[1, 4000000000.23, -294967295],
	[1, 5000000000, 705032705],

t/11.10-binbit.t  view on Meta::CPAN

	[1, -32.5, -31],
	[1, -3000000000, 1294967297],
	[1, -4000000000.23, 294967297],
	[1, -5000000000, -705032703],
	[1, -4294967298.479, -1],
	[1, -6442450942, -2147483645],
	[1, -6442450943.674, -2147483647],
	[1, -6442450944, -2147483647],
	[1, -6442450945, 2147483647],
	[1, -6442450946.74, 2147483647],
	[32.5, NaN, 32],
	[32.5, 0, 32],
	[32.5, 0, 32],
	[32.5, Infinity, 32],
	[32.5, -Infinity, 32],
	[32.5, 1, 33],
	[32.5, 32.5, 32],
	[32.5, 2147483648, -2147483616],
	[32.5, 3000000000, -1294967264],
	[32.5, 4000000000.23, -294967264],
	[32.5, 5000000000, 705032736],

t/11.10-binbit.t  view on Meta::CPAN

	[32.5, -32.5, -32],
	[32.5, -3000000000, 1294967328],
	[32.5, -4000000000.23, 294967328],
	[32.5, -5000000000, -705032672],
	[32.5, -4294967298.479, -2],
	[32.5, -6442450942, -2147483614],
	[32.5, -6442450943.674, -2147483615],
	[32.5, -6442450944, -2147483616],
	[32.5, -6442450945, 2147483647],
	[32.5, -6442450946.74, 2147483646],
	[2147483648, NaN, -2147483648],
	[2147483648, 0, -2147483648],
	[2147483648, 0, -2147483648],
	[2147483648, Infinity, -2147483648],
	[2147483648, -Infinity, -2147483648],
	[2147483648, 1, -2147483647],
	[2147483648, 32.5, -2147483616],
	[2147483648, 2147483648, -2147483648],
	[2147483648, 3000000000, -1294967296],
	[2147483648, 4000000000.23, -294967296],
	[2147483648, 5000000000, -1442450944],

t/11.10-binbit.t  view on Meta::CPAN

	[2147483648, -32.5, -32],
	[2147483648, -3000000000, -852516352],
	[2147483648, -4000000000.23, -1852516352],
	[2147483648, -5000000000, -705032704],
	[2147483648, -4294967298.479, -2],
	[2147483648, -6442450942, -2147483646],
	[2147483648, -6442450943.674, -2147483647],
	[2147483648, -6442450944, -2147483648],
	[2147483648, -6442450945, -1],
	[2147483648, -6442450946.74, -2],
	[3000000000, NaN, -1294967296],
	[3000000000, 0, -1294967296],
	[3000000000, 0, -1294967296],
	[3000000000, Infinity, -1294967296],
	[3000000000, -Infinity, -1294967296],
	[3000000000, 1, -1294967295],
	[3000000000, 32.5, -1294967264],
	[3000000000, 2147483648, -1294967296],
	[3000000000, 3000000000, -1294967296],
	[3000000000, 4000000000.23, -17072640],
	[3000000000, 5000000000, -1160380928],

t/11.10-binbit.t  view on Meta::CPAN

	[3000000000, -32.5, -32],
	[3000000000, -3000000000, -512],
	[3000000000, -4000000000.23, -1277895168],
	[3000000000, -5000000000, -134586880],
	[3000000000, -4294967298.479, -2],
	[3000000000, -6442450942, -1294967294],
	[3000000000, -6442450943.674, -1294967295],
	[3000000000, -6442450944, -1294967296],
	[3000000000, -6442450945, -1],
	[3000000000, -6442450946.74, -2],
	[4000000000.23, NaN, -294967296],
	[4000000000.23, 0, -294967296],
	[4000000000.23, 0, -294967296],
	[4000000000.23, Infinity, -294967296],
	[4000000000.23, -Infinity, -294967296],
	[4000000000.23, 1, -294967295],
	[4000000000.23, 32.5, -294967264],
	[4000000000.23, 2147483648, -294967296],
	[4000000000.23, 3000000000, -17072640],
	[4000000000.23, 4000000000.23, -294967296],
	[4000000000.23, 5000000000, -294651392],

t/11.10-binbit.t  view on Meta::CPAN

	[4000000000.23, -32.5, -32],
	[4000000000.23, -3000000000, -277894656],
	[4000000000.23, -4000000000.23, -2048],
	[4000000000.23, -5000000000, -315904],
	[4000000000.23, -4294967298.479, -2],
	[4000000000.23, -6442450942, -294967294],
	[4000000000.23, -6442450943.674, -294967295],
	[4000000000.23, -6442450944, -294967296],
	[4000000000.23, -6442450945, -1],
	[4000000000.23, -6442450946.74, -2],
	[5000000000, NaN, 705032704],
	[5000000000, 0, 705032704],
	[5000000000, 0, 705032704],
	[5000000000, Infinity, 705032704],
	[5000000000, -Infinity, 705032704],
	[5000000000, 1, 705032705],
	[5000000000, 32.5, 705032736],
	[5000000000, 2147483648, -1442450944],
	[5000000000, 3000000000, -1160380928],
	[5000000000, 4000000000.23, -294651392],
	[5000000000, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[5000000000, -32.5, -32],
	[5000000000, -3000000000, 1865413120],
	[5000000000, -4000000000.23, 999684608],
	[5000000000, -5000000000, -512],
	[5000000000, -4294967298.479, -2],
	[5000000000, -6442450942, -1442450942],
	[5000000000, -6442450943.674, -1442450943],
	[5000000000, -6442450944, -1442450944],
	[5000000000, -6442450945, 2147483647],
	[5000000000, -6442450946.74, 2147483646],
	[4294967296, NaN, 0],
	[4294967296, 0, 0],
	[4294967296, 0, 0],
	[4294967296, Infinity, 0],
	[4294967296, -Infinity, 0],
	[4294967296, 1, 1],
	[4294967296, 32.5, 32],
	[4294967296, 2147483648, -2147483648],
	[4294967296, 3000000000, -1294967296],
	[4294967296, 4000000000.23, -294967296],
	[4294967296, 5000000000, 705032704],

t/11.10-binbit.t  view on Meta::CPAN

	[4294967296, -32.5, -32],
	[4294967296, -3000000000, 1294967296],
	[4294967296, -4000000000.23, 294967296],
	[4294967296, -5000000000, -705032704],
	[4294967296, -4294967298.479, -2],
	[4294967296, -6442450942, -2147483646],
	[4294967296, -6442450943.674, -2147483647],
	[4294967296, -6442450944, -2147483648],
	[4294967296, -6442450945, 2147483647],
	[4294967296, -6442450946.74, 2147483646],
	[4294967298.479, NaN, 2],
	[4294967298.479, 0, 2],
	[4294967298.479, 0, 2],
	[4294967298.479, Infinity, 2],
	[4294967298.479, -Infinity, 2],
	[4294967298.479, 1, 3],
	[4294967298.479, 32.5, 34],
	[4294967298.479, 2147483648, -2147483646],
	[4294967298.479, 3000000000, -1294967294],
	[4294967298.479, 4000000000.23, -294967294],
	[4294967298.479, 5000000000, 705032706],

t/11.10-binbit.t  view on Meta::CPAN

	[4294967298.479, -32.5, -30],
	[4294967298.479, -3000000000, 1294967298],
	[4294967298.479, -4000000000.23, 294967298],
	[4294967298.479, -5000000000, -705032702],
	[4294967298.479, -4294967298.479, -2],
	[4294967298.479, -6442450942, -2147483646],
	[4294967298.479, -6442450943.674, -2147483645],
	[4294967298.479, -6442450944, -2147483646],
	[4294967298.479, -6442450945, 2147483647],
	[4294967298.479, -6442450946.74, 2147483646],
	[6442450942, NaN, 2147483646],
	[6442450942, 0, 2147483646],
	[6442450942, 0, 2147483646],
	[6442450942, Infinity, 2147483646],
	[6442450942, -Infinity, 2147483646],
	[6442450942, 1, 2147483647],
	[6442450942, 32.5, 2147483646],
	[6442450942, 2147483648, -2],
	[6442450942, 3000000000, -2],
	[6442450942, 4000000000.23, -2],
	[6442450942, 5000000000, 2147483646],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450942, -32.5, -2],
	[6442450942, -3000000000, 2147483646],
	[6442450942, -4000000000.23, 2147483646],
	[6442450942, -5000000000, -2],
	[6442450942, -4294967298.479, -2],
	[6442450942, -6442450942, -2],
	[6442450942, -6442450943.674, -1],
	[6442450942, -6442450944, -2],
	[6442450942, -6442450945, 2147483647],
	[6442450942, -6442450946.74, 2147483646],
	[6442450943.674, NaN, 2147483647],
	[6442450943.674, 0, 2147483647],
	[6442450943.674, 0, 2147483647],
	[6442450943.674, Infinity, 2147483647],
	[6442450943.674, -Infinity, 2147483647],
	[6442450943.674, 1, 2147483647],
	[6442450943.674, 32.5, 2147483647],
	[6442450943.674, 2147483648, -1],
	[6442450943.674, 3000000000, -1],
	[6442450943.674, 4000000000.23, -1],
	[6442450943.674, 5000000000, 2147483647],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450943.674, -32.5, -1],
	[6442450943.674, -3000000000, 2147483647],
	[6442450943.674, -4000000000.23, 2147483647],
	[6442450943.674, -5000000000, -1],
	[6442450943.674, -4294967298.479, -1],
	[6442450943.674, -6442450942, -1],
	[6442450943.674, -6442450943.674, -1],
	[6442450943.674, -6442450944, -1],
	[6442450943.674, -6442450945, 2147483647],
	[6442450943.674, -6442450946.74, 2147483647],
	[6442450944, NaN, -2147483648],
	[6442450944, 0, -2147483648],
	[6442450944, 0, -2147483648],
	[6442450944, Infinity, -2147483648],
	[6442450944, -Infinity, -2147483648],
	[6442450944, 1, -2147483647],
	[6442450944, 32.5, -2147483616],
	[6442450944, 2147483648, -2147483648],
	[6442450944, 3000000000, -1294967296],
	[6442450944, 4000000000.23, -294967296],
	[6442450944, 5000000000, -1442450944],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450944, -32.5, -32],
	[6442450944, -3000000000, -852516352],
	[6442450944, -4000000000.23, -1852516352],
	[6442450944, -5000000000, -705032704],
	[6442450944, -4294967298.479, -2],
	[6442450944, -6442450942, -2147483646],
	[6442450944, -6442450943.674, -2147483647],
	[6442450944, -6442450944, -2147483648],
	[6442450944, -6442450945, -1],
	[6442450944, -6442450946.74, -2],
	[6442450945, NaN, -2147483647],
	[6442450945, 0, -2147483647],
	[6442450945, 0, -2147483647],
	[6442450945, Infinity, -2147483647],
	[6442450945, -Infinity, -2147483647],
	[6442450945, 1, -2147483647],
	[6442450945, 32.5, -2147483615],
	[6442450945, 2147483648, -2147483647],
	[6442450945, 3000000000, -1294967295],
	[6442450945, 4000000000.23, -294967295],
	[6442450945, 5000000000, -1442450943],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450945, -32.5, -31],
	[6442450945, -3000000000, -852516351],
	[6442450945, -4000000000.23, -1852516351],
	[6442450945, -5000000000, -705032703],
	[6442450945, -4294967298.479, -1],
	[6442450945, -6442450942, -2147483645],
	[6442450945, -6442450943.674, -2147483647],
	[6442450945, -6442450944, -2147483647],
	[6442450945, -6442450945, -1],
	[6442450945, -6442450946.74, -1],
	[6442450946.74, NaN, -2147483646],
	[6442450946.74, 0, -2147483646],
	[6442450946.74, 0, -2147483646],
	[6442450946.74, Infinity, -2147483646],
	[6442450946.74, -Infinity, -2147483646],
	[6442450946.74, 1, -2147483645],
	[6442450946.74, 32.5, -2147483614],
	[6442450946.74, 2147483648, -2147483646],
	[6442450946.74, 3000000000, -1294967294],
	[6442450946.74, 4000000000.23, -294967294],
	[6442450946.74, 5000000000, -1442450942],

t/11.10-binbit.t  view on Meta::CPAN

	[6442450946.74, -32.5, -30],
	[6442450946.74, -3000000000, -852516350],
	[6442450946.74, -4000000000.23, -1852516350],
	[6442450946.74, -5000000000, -705032702],
	[6442450946.74, -4294967298.479, -2],
	[6442450946.74, -6442450942, -2147483646],
	[6442450946.74, -6442450943.674, -2147483645],
	[6442450946.74, -6442450944, -2147483646],
	[6442450946.74, -6442450945, -1],
	[6442450946.74, -6442450946.74, -2],
	[-1, NaN, -1],
	[-1, 0, -1],
	[-1, 0, -1],
	[-1, Infinity, -1],
	[-1, -Infinity, -1],
	[-1, 1, -1],
	[-1, 32.5, -1],
	[-1, 2147483648, -1],
	[-1, 3000000000, -1],
	[-1, 4000000000.23, -1],
	[-1, 5000000000, -1],

t/11.10-binbit.t  view on Meta::CPAN

	[-1, -32.5, -1],
	[-1, -3000000000, -1],
	[-1, -4000000000.23, -1],
	[-1, -5000000000, -1],
	[-1, -4294967298.479, -1],
	[-1, -6442450942, -1],
	[-1, -6442450943.674, -1],
	[-1, -6442450944, -1],
	[-1, -6442450945, -1],
	[-1, -6442450946.74, -1],
	[-32.5, NaN, -32],
	[-32.5, 0, -32],
	[-32.5, 0, -32],
	[-32.5, Infinity, -32],
	[-32.5, -Infinity, -32],
	[-32.5, 1, -31],
	[-32.5, 32.5, -32],
	[-32.5, 2147483648, -32],
	[-32.5, 3000000000, -32],
	[-32.5, 4000000000.23, -32],
	[-32.5, 5000000000, -32],

t/11.10-binbit.t  view on Meta::CPAN

	[-32.5, -32.5, -32],
	[-32.5, -3000000000, -32],
	[-32.5, -4000000000.23, -32],
	[-32.5, -5000000000, -32],
	[-32.5, -4294967298.479, -2],
	[-32.5, -6442450942, -30],
	[-32.5, -6442450943.674, -31],
	[-32.5, -6442450944, -32],
	[-32.5, -6442450945, -1],
	[-32.5, -6442450946.74, -2],
	[-3000000000, NaN, 1294967296],
	[-3000000000, 0, 1294967296],
	[-3000000000, 0, 1294967296],
	[-3000000000, Infinity, 1294967296],
	[-3000000000, -Infinity, 1294967296],
	[-3000000000, 1, 1294967297],
	[-3000000000, 32.5, 1294967328],
	[-3000000000, 2147483648, -852516352],
	[-3000000000, 3000000000, -512],
	[-3000000000, 4000000000.23, -277894656],
	[-3000000000, 5000000000, 1865413120],

t/11.10-binbit.t  view on Meta::CPAN

	[-3000000000, -32.5, -32],
	[-3000000000, -3000000000, 1294967296],
	[-3000000000, -4000000000.23, 1572862464],
	[-3000000000, -5000000000, -570446336],
	[-3000000000, -4294967298.479, -2],
	[-3000000000, -6442450942, -852516350],
	[-3000000000, -6442450943.674, -852516351],
	[-3000000000, -6442450944, -852516352],
	[-3000000000, -6442450945, 2147483647],
	[-3000000000, -6442450946.74, 2147483646],
	[-4000000000.23, NaN, 294967296],
	[-4000000000.23, 0, 294967296],
	[-4000000000.23, 0, 294967296],
	[-4000000000.23, Infinity, 294967296],
	[-4000000000.23, -Infinity, 294967296],
	[-4000000000.23, 1, 294967297],
	[-4000000000.23, 32.5, 294967328],
	[-4000000000.23, 2147483648, -1852516352],
	[-4000000000.23, 3000000000, -1277895168],
	[-4000000000.23, 4000000000.23, -2048],
	[-4000000000.23, 5000000000, 999684608],

t/11.10-binbit.t  view on Meta::CPAN

	[-4000000000.23, -32.5, -32],
	[-4000000000.23, -3000000000, 1572862464],
	[-4000000000.23, -4000000000.23, 294967296],
	[-4000000000.23, -5000000000, -704717312],
	[-4000000000.23, -4294967298.479, -2],
	[-4000000000.23, -6442450942, -1852516350],
	[-4000000000.23, -6442450943.674, -1852516351],
	[-4000000000.23, -6442450944, -1852516352],
	[-4000000000.23, -6442450945, 2147483647],
	[-4000000000.23, -6442450946.74, 2147483646],
	[-5000000000, NaN, -705032704],
	[-5000000000, 0, -705032704],
	[-5000000000, 0, -705032704],
	[-5000000000, Infinity, -705032704],
	[-5000000000, -Infinity, -705032704],
	[-5000000000, 1, -705032703],
	[-5000000000, 32.5, -705032672],
	[-5000000000, 2147483648, -705032704],
	[-5000000000, 3000000000, -134586880],
	[-5000000000, 4000000000.23, -315904],
	[-5000000000, 5000000000, -512],

t/11.10-binbit.t  view on Meta::CPAN

	[-5000000000, -32.5, -32],
	[-5000000000, -3000000000, -570446336],
	[-5000000000, -4000000000.23, -704717312],
	[-5000000000, -5000000000, -705032704],
	[-5000000000, -4294967298.479, -2],
	[-5000000000, -6442450942, -705032702],
	[-5000000000, -6442450943.674, -705032703],
	[-5000000000, -6442450944, -705032704],
	[-5000000000, -6442450945, -1],
	[-5000000000, -6442450946.74, -2],
	[-4294967298.479, NaN, -2],
	[-4294967298.479, 0, -2],
	[-4294967298.479, 0, -2],
	[-4294967298.479, Infinity, -2],
	[-4294967298.479, -Infinity, -2],
	[-4294967298.479, 1, -1],
	[-4294967298.479, 32.5, -2],
	[-4294967298.479, 2147483648, -2],
	[-4294967298.479, 3000000000, -2],
	[-4294967298.479, 4000000000.23, -2],
	[-4294967298.479, 5000000000, -2],

t/11.10-binbit.t  view on Meta::CPAN

	[-4294967298.479, -32.5, -2],
	[-4294967298.479, -3000000000, -2],
	[-4294967298.479, -4000000000.23, -2],
	[-4294967298.479, -5000000000, -2],
	[-4294967298.479, -4294967298.479, -2],
	[-4294967298.479, -6442450942, -2],
	[-4294967298.479, -6442450943.674, -1],
	[-4294967298.479, -6442450944, -2],
	[-4294967298.479, -6442450945, -1],
	[-4294967298.479, -6442450946.74, -2],
	[-6442450942, NaN, -2147483646],
	[-6442450942, 0, -2147483646],
	[-6442450942, 0, -2147483646],
	[-6442450942, Infinity, -2147483646],
	[-6442450942, -Infinity, -2147483646],
	[-6442450942, 1, -2147483645],
	[-6442450942, 32.5, -2147483614],
	[-6442450942, 2147483648, -2147483646],
	[-6442450942, 3000000000, -1294967294],
	[-6442450942, 4000000000.23, -294967294],
	[-6442450942, 5000000000, -1442450942],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450942, -32.5, -30],
	[-6442450942, -3000000000, -852516350],
	[-6442450942, -4000000000.23, -1852516350],
	[-6442450942, -5000000000, -705032702],
	[-6442450942, -4294967298.479, -2],
	[-6442450942, -6442450942, -2147483646],
	[-6442450942, -6442450943.674, -2147483645],
	[-6442450942, -6442450944, -2147483646],
	[-6442450942, -6442450945, -1],
	[-6442450942, -6442450946.74, -2],
	[-6442450943.674, NaN, -2147483647],
	[-6442450943.674, 0, -2147483647],
	[-6442450943.674, 0, -2147483647],
	[-6442450943.674, Infinity, -2147483647],
	[-6442450943.674, -Infinity, -2147483647],
	[-6442450943.674, 1, -2147483647],
	[-6442450943.674, 32.5, -2147483615],
	[-6442450943.674, 2147483648, -2147483647],
	[-6442450943.674, 3000000000, -1294967295],
	[-6442450943.674, 4000000000.23, -294967295],
	[-6442450943.674, 5000000000, -1442450943],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450943.674, -32.5, -31],
	[-6442450943.674, -3000000000, -852516351],
	[-6442450943.674, -4000000000.23, -1852516351],
	[-6442450943.674, -5000000000, -705032703],
	[-6442450943.674, -4294967298.479, -1],
	[-6442450943.674, -6442450942, -2147483645],
	[-6442450943.674, -6442450943.674, -2147483647],
	[-6442450943.674, -6442450944, -2147483647],
	[-6442450943.674, -6442450945, -1],
	[-6442450943.674, -6442450946.74, -1],
	[-6442450944, NaN, -2147483648],
	[-6442450944, 0, -2147483648],
	[-6442450944, 0, -2147483648],
	[-6442450944, Infinity, -2147483648],
	[-6442450944, -Infinity, -2147483648],
	[-6442450944, 1, -2147483647],
	[-6442450944, 32.5, -2147483616],
	[-6442450944, 2147483648, -2147483648],
	[-6442450944, 3000000000, -1294967296],
	[-6442450944, 4000000000.23, -294967296],
	[-6442450944, 5000000000, -1442450944],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450944, -32.5, -32],
	[-6442450944, -3000000000, -852516352],
	[-6442450944, -4000000000.23, -1852516352],
	[-6442450944, -5000000000, -705032704],
	[-6442450944, -4294967298.479, -2],
	[-6442450944, -6442450942, -2147483646],
	[-6442450944, -6442450943.674, -2147483647],
	[-6442450944, -6442450944, -2147483648],
	[-6442450944, -6442450945, -1],
	[-6442450944, -6442450946.74, -2],
	[-6442450945, NaN, 2147483647],
	[-6442450945, 0, 2147483647],
	[-6442450945, 0, 2147483647],
	[-6442450945, Infinity, 2147483647],
	[-6442450945, -Infinity, 2147483647],
	[-6442450945, 1, 2147483647],
	[-6442450945, 32.5, 2147483647],
	[-6442450945, 2147483648, -1],
	[-6442450945, 3000000000, -1],
	[-6442450945, 4000000000.23, -1],
	[-6442450945, 5000000000, 2147483647],

t/11.10-binbit.t  view on Meta::CPAN

	[-6442450945, -32.5, -1],
	[-6442450945, -3000000000, 2147483647],
	[-6442450945, -4000000000.23, 2147483647],
	[-6442450945, -5000000000, -1],
	[-6442450945, -4294967298.479, -1],
	[-6442450945, -6442450942, -1],
	[-6442450945, -6442450943.674, -1],
	[-6442450945, -6442450944, -1],
	[-6442450945, -6442450945, 2147483647],
	[-6442450945, -6442450946.74, 2147483647],
	[-6442450946.74, NaN, 2147483646],
	[-6442450946.74, 0, 2147483646],
	[-6442450946.74, 0, 2147483646],
	[-6442450946.74, Infinity, 2147483646],
	[-6442450946.74, -Infinity, 2147483646],
	[-6442450946.74, 1, 2147483647],
	[-6442450946.74, 32.5, 2147483646],
	[-6442450946.74, 2147483648, -2],
	[-6442450946.74, 3000000000, -2],
	[-6442450946.74, 4000000000.23, -2],
	[-6442450946.74, 5000000000, 2147483646],

t/15.01.01-global-vars.t  view on Meta::CPAN

#!perl -T
do './t/jstest.pl' or die __DATA__

// ===================================================
// 15.1.1: Non-function global properties
// 9 tests
// ===================================================

ok(NaN != NaN, 'global NaN property')
ok(Infinity + Infinity == Infinity && Infinity > 0 === true,
	'global Infinity property');
ok(typeof undefined == 'undefined', 'global undefined property')

ok(!delete NaN, 'NaN cannot be deleted')
ok(!delete Infinity, 'Infinity cannot be deleted either')
ok(!delete undefined, 'nor can undefined')

NaN = 5;
is(NaN, 5, 'NaN is modifiable')
Infinity = 7
is(Infinity ,7, 'Infinity is modifiable, too')
undefined = 37
is(undefined, 37, 'so is undefined')

t/15.01.02-global-functions.t  view on Meta::CPAN

#!perl -T
do './t/jstest.pl' or die __DATA__

function is_nan(n){ // checks to see whether the number is *really* NaN
                    // & not something which converts to NaN when numified
	return n!=n
}

// ===================================================
// 15.1.2.1: eval
// 16 tests
// ===================================================

is(typeof eval, 'function', 'typeof eval');
is(Object.prototype.toString.apply(eval), '[object Function]',

t/15.01.02-global-functions.t  view on Meta::CPAN

	-6442450944,
	37,
	true,
]
nought_radices = [ // 11 elems
	undefined,
	null,
	false,
	'a',
	{},
	NaN,
	+0,
	-0,
	Infinity,
	-Infinity,
	4294967296,
]
// We’ll use '2' for 2 to test type conversion at the same time.
other_radices = [ // 34 useful elems
	0,0,0, // placeholders
	3,

t/15.01.02-global-functions.t  view on Meta::CPAN

// 1 test

ok(parseInt(new String("100"), 23) === 23*23, 'parseInt(object)') 

/* parseInt(surrogate) */
// 1 test

result = 0;
try{result = parseInt('\ud800')}
catch(e){result = e}
is(result, 'NaN', 'parseInt(surrogate)')

// ===================================================
// 15.1.2.3: parseFloat
// ===================================================

// 10 tests (boilerplate stuff for built-ins)
is(typeof parseFloat, 'function', 'typeof parseFloat');
is(Object.prototype.toString.apply(parseFloat), '[object Function]',
	'class of parseFloat')
ok(Function.prototype.isPrototypeOf(parseFloat), 'parseFloat\'s prototype')

t/15.01.02-global-functions.t  view on Meta::CPAN

			===-pf_tests[i][1],
		'parseFloat: ws - ' + pf_tests[i][2] + ' + gibberish')
ok(is_nan(parseFloat('nonsens')), 'parseFloat(gibberish)')

/* parseInt(surrogate) */
// 1 test

result = 0;
try{result = parseFloat('\ud800')}
catch(e){result = e}
is(result, 'NaN', 'parseFloat(surrogate)')

// ===================================================
// 15.1.2.4: isNaN
// ===================================================

// 10 tests (boilerplate stuff for built-ins)
is(typeof isNaN, 'function', 'typeof isNaN');
is(Object.prototype.toString.apply(isNaN), '[object Function]',
	'class of isNaN')
ok(Function.prototype.isPrototypeOf(isNaN), 'isNaN\'s prototype')
$catched = false;
try{ new isNaN } catch(e) { $catched = e }
ok($catched, 'new isNaN fails')
ok(!('prototype' in isNaN), 'isNaN has no prototype property')
ok(isNaN.length === 1, 'isNaN.length')
ok(!isNaN.propertyIsEnumerable('length'),
	'isNaN.length is not enumerable')
ok(!delete isNaN.length, 'isNaN.length cannot be deleted')
is((isNaN.length++, isNaN.length), 1,
	'isNaN.length is read-only')
ok(isNaN() === true, 'isNaN() w/o args')

// 10 tests
ok(isNaN(undefined) === true, 'isNaN(undefined)')
ok(isNaN(null     ) === false, 'isNaN(null)')
ok(isNaN(true     ) === false, 'isNaN(true)')
ok(isNaN(false    ) === false, 'isNaN(false)')
ok(isNaN(0        ) === false, 'isNaN(0)')
ok(isNaN(Infinity)===false,  'isNaN(Infinity)')
ok(isNaN(NaN)===true,  'isNaN(NaN)')
ok(isNaN(' astring')===true,  'isNaN(string)')
ok(isNaN('33')===false,  'isNaN(numeric string)')
ok(isNaN({})===true,         'isNaN({})')

// ===================================================
// 15.1.2.5: isFinite
// ===================================================

// 10 tests (boilerplate stuff for built-ins)
is(typeof isFinite, 'function', 'typeof isFinite');
is(Object.prototype.toString.apply(isFinite), '[object Function]',
	'class of isFinite')
ok(Function.prototype.isPrototypeOf(isFinite), 'isFinite\'s prototype')

t/15.01.02-global-functions.t  view on Meta::CPAN

ok(isFinite()===false, 'isFinite() w/o args')

// 11 tests
ok(isFinite(undefined) === false, 'isFinite(undefined)')
ok(isFinite(null     ) === true, 'isFinite(null)')
ok(isFinite(true     ) === true, 'isFinite(true)')
ok(isFinite(false    ) === true, 'isFinite(false)')
ok(isFinite(0        ) === true, 'isFinite(0)')
ok(isFinite(Infinity)===false,  'isFinite(Infinity)')
ok(isFinite(-Infinity)===false,  'isFinite(-Infinity)')
ok(isFinite(NaN)===false,  'isFinite(NaN)')
ok(isFinite(' astring')===false,  'isFinite(string)')
ok(isFinite('33')===true,  'isFinite(numeric string)')
ok(isFinite({})===false,         'isFinite({})')

t/15.01.03-uri-functions.t  view on Meta::CPAN

#!perl -T
do './t/jstest.pl' or die __DATA__

function is_nan(n){ // checks to see whether the number is *really* NaN
                    // & not something which converts to NaN when numified
	return n!=n
}

// ===================================================
// 15.1.3.1: decodeURI
// ===================================================

// 10 tests (boilerplate stuff for built-ins)
is(typeof decodeURI, 'function', 'typeof decodeURI');
is(Object.prototype.toString.apply(decodeURI), '[object Function]',

t/15.05-string-objects.t  view on Meta::CPAN


// ===================================================
// 15.5.3.2: fromCharCode
// ===================================================

// 10 tests
method_boilerplate_tests(String,'fromCharCode',1)

// 1 tests
is(String.fromCharCode(
	undefined,null,true,false,'a','3',{},NaN,+0,-0,Infinity,-Infinity,
	1,32.5,2147483648,3000000000,4000000000.23,5000000000,4294967296,
	4294967298.479,6442450942,6442450943.674,6442450944,6442450945,
	6442450946.74,-1,-32.5,-3000000000,-4000000000.23,-5000000000,
	-4294967298.479,-6442450942,-6442450943.674,-6442450944,
	-6442450945,-6442450946.74
), "\x00\x00\x01\x00\x00\x03\x00\x00\x00\x00\x00\x00\x01\x20\x00帀⠀\uf200"+
   "\x00\x02\ufffe\uffff\x00\x01\x02\uffff¢ꈀ\ud800\u0e00\ufffe\x02\x01" +
   "\x00\uffff\ufffe", 'fromCharCode')

// ===================================================

t/15.07-number-objects.t  view on Meta::CPAN

	'Number.MIN_VALUE is not enumerable')
ok(!delete Number.MIN_VALUE, 'Number.MIN_VALUE cannot be deleted')
cmp_ok((Number.MIN_VALUE = 7, Number.MIN_VALUE), '!=', 7,
	'Number.MIN_VALUE is read-only')
ok(Number.MIN_VALUE === "What value do we put here?", 'value of MIN_VALUE')

}catch(_){}


// ===================================================
// 15.7.3.4 Number.NaN
// 4 tests
// ===================================================

ok(!Number.propertyIsEnumerable('NaN'),
	'Number.NaN is not enumerable')
ok(!delete Number.NaN, 'Number.NaN cannot be deleted')
cmp_ok((Number.NaN = 7, Number.NaN), '!=', 7,
	'Number.NaN is read-only')
ok(is_nan(Number.NaN), 'value of NaN')


// ===================================================
// 15.7.3.5 Number.NEGATIVE_INFINITY
// 4 tests
// ===================================================

ok(!Number.propertyIsEnumerable('NEGATIVE_INFINITY'),
	'Number.NEGATIVE_INFINITY is not enumerable')
ok(!delete Number.NEGATIVE_INFINITY,

t/15.07-number-objects.t  view on Meta::CPAN

	catch(e){ok(e instanceof TypeError,testname)}
	var testname='toFixed with object for this';
	try{f.call({}); fail(testname) }
	catch(e){ok(e instanceof TypeError,testname)}
	var testname='toFixed with string for this';
	try{f.call('true'); fail(testname) }
	catch(e){ok(e instanceof TypeError,testname)}
}()

// 10 tests
ok(NaN.toFixed() === "NaN", 'NaN.toFixed')
ok(27.3.toFixed() === "27", 'toFixed with no args')
is(27.3.toFixed(NaN), "27", 'toFixed with NaN arg')
is(27.37.toFixed(1.9), "27.4", 'toFixed with float arg')
is(27.3.toFixed(0), "27", 'toFixed with 0 arg')
is(30.1.toFixed(5), "30.10000", 'toFixed returns trailing zeroes')
is(30.125.toFixed(2), "30.13", 'toFixed rounds 5 up')
is(1.5.toFixed(0), "2", 'toFixed(0) rounds 5 up')
is(.1.toFixed(2), "0.10", 'toFixed returns a leading 0.')
is(1000000000000000000001..toFixed(7), 1000000000000000000001..toString(),
   'toFixed uses toString for really big numbers');


t/15.07-number-objects.t  view on Meta::CPAN

	catch(e){ok(e instanceof TypeError,testname)}
	var testname='toExponential with object for this';
	try{f.call({}); fail(testname) }
	catch(e){ok(e instanceof TypeError,testname)}
	var testname='toExponential with string for this';
	try{f.call('true'); fail(testname) }
	catch(e){ok(e instanceof TypeError,testname)}
}()

// 15 tests
ok(NaN.toExponential(-200) === "NaN", 'NaN.toExponential')
ok((-Infinity).toExponential(-200) === "-Infinity", "-inf.toExponential")
ok(Infinity.toExponential(-200) === "Infinity", "inf.toExponential")
is(3..toExponential(), '3e+0', 'integer.toExponential')
is(300..toExponential(), '3e+2', 'power of ten .toExponential')
is(37.2.toExponential(), '3.72e+1', 'float>1 .toExponential')
is(.00372.toExponential(), '3.72e-3', 'positive float<1 .toExponential')
is(0..toExponential(), '0e+0', '0..toExponential()')
is(37.2.toExponential(1), '3.7e+1', 'toExponential with arg')
is(37.2.toExponential(1.9), '3.7e+1', 'toExponential with float arg')
is(37.2.toExponential(NaN), '4e+1', 'toExponential with nan arg')
is(30.125.toExponential(3), '3.013e+1', 'toExponential with arg rounds up')
is(9.5.toExponential(0), '1e+0', '9.5.toExponential(0)')
is(1.5.toExponential(0), '2e+0', 'toExponential with 0 arg rounds up')
is((-1.).toExponential(), '-1e+0', 'negative .toExponential')


// ===================================================
// 15.7.4.7: toPrecision
// ===================================================

t/15.07-number-objects.t  view on Meta::CPAN

	catch(e){ok(e instanceof TypeError,testname)}
	var testname='toPrecision with string for this';
	try{f.call('true'); fail(testname) }
	catch(e){ok(e instanceof TypeError,testname)}
}()

// 17 test
ok(80..toPrecision() === '80', 'int.toPrecision with no args stringifies')
ok(80.1.toPrecision() === '80.1',
  'float.toPrecision with no args stringifies')
ok(NaN.toPrecision(1) === 'NaN', 'NaN.toPrecision')
is(Infinity.toPrecision(1), 'Infinity', 'inf.toPrecision')
is((-Infinity).toPrecision(1), '-Infinity', '-inf.toPrecision')
is(0..toPrecision(1), '0', '0..toPrecision(1)')
is(0..toPrecision(7), '0.000000', '0..toPrecision(7)')
is(.0000001.toPrecision(1), '1.e-7', '.000001.toPrecision(1)')
is(10..toPrecision(1), '1.e+1', '10..toPrecision(1)')
is(100..toPrecision(1), '1.e+2', '100..toPrecision(2)')
is(100..toPrecision(3), '100', '100..toPrecision(3)')
is((-100).toPrecision(3), '-100', '(-100)..toPrecision(3)')
try{

t/15.08-math.t  view on Meta::CPAN

ok(is_nan(Math.abs(undefined)), 'abs(undefined)')
ok(is_nan(Math.abs({})), 'abs(object)')
ok(Math.abs("-3") === 3, 'abs(string)')
ok(Math.abs(true) === 1, 'abs(bool)')
ok(Math.abs(null) === 0, 'abs(null)')

// 6 tests more
ok(is_nan(Math.abs()), 'abs()')
ok(Math.abs(-5)===5, 'abs(neg)')
ok(Math.abs(7)===7, 'abs(pos)')
is(Math.abs(NaN),NaN,' abs(NaN)')
is(1/Math.abs(-0), 'Infinity', 'abs(-0)')
is(Math.abs(-Infinity),Infinity,'abs(-inf)')


// ===================================================
// 15.8.2.2: acos
// ===================================================

// 10 tests
method_boilerplate_tests(Math,'acos',1)

t/15.08-math.t  view on Meta::CPAN

// 5 tests for type conversion
ok(is_nan(Math.acos(undefined)), 'acos(undefined)')
ok(is_nan(Math.acos({})), 'acos(object)')
approx(Math.acos("-.5"),2.09439510, 'acos(string)')
ok(Math.acos(true) === 0, 'acos(bool)')
approx(Math.acos(null), 1.57079632, 'acos(null)')

// 6 tests more
ok(is_nan(Math.acos()), 'acos()')
approx(Math.acos(.36), '1.202528433358', 'acos(.36)')
is(Math.acos(NaN),NaN,' acos(NaN)')
is(Math.acos(-2),NaN,' acos(<-1)')
is(Math.acos(1.1),NaN,' acos(>1)')
is(1/Math.acos(1), 'Infinity', 'acos(1)')


// ===================================================
// 15.8.2.3: asin
// ===================================================

// 10 tests
method_boilerplate_tests(Math,'asin',1)

// 5 tests for type conversion
ok(is_nan(Math.asin(undefined)), 'asin(undefined)')
ok(is_nan(Math.asin({})), 'asin(object)')
approx(Math.asin("-.5"),-0.523598775598, 'asin(string)')
approx(Math.asin(true),1.57079632679, 'asin(bool)')
is(1/Math.asin(null), Infinity, 'asin(null)')

// 7 tests more
ok(is_nan(Math.asin()), 'asin()')
approx(Math.asin(.36), '0.3682678934366', 'asin(.36)')
is(Math.asin(NaN),NaN,' asin(NaN)')
is(Math.asin(-2),NaN,' asin(<-1)')
is(Math.asin(1.1),NaN,' asin(>1)')
is(1/Math.asin(0), 'Infinity', 'asin(0)')
try{skip("-0 is not supported",1);
    is(1/Math.asin(-0), '-Infinity', 'asin(-0)') }
catch(_){}

// ===================================================
// 15.8.2.4: atan
// ===================================================

// 10 tests

t/15.08-math.t  view on Meta::CPAN

// 5 tests for type conversion
ok(is_nan(Math.atan(undefined)), 'atan(undefined)')
ok(is_nan(Math.atan({})), 'atan(object)')
approx(Math.atan("-.5"),-0.4636476, 'atan(string)')
approx(Math.atan(true),0.785398, 'atan(bool)')
is(1/Math.atan(null), Infinity, 'atan(null)')

// 7 test
ok(is_nan(Math.atan()), 'atan()')
approx(Math.atan(.36), '0.34555558', 'atan(.36)')
is(Math.atan(NaN),NaN,' atan(NaN)')
is(1/Math.atan(0), 'Infinity', 'atan(0)')
try{skip("-0 is not supported",1);
    is(1/Math.atan(-0), '-Infinity', 'atan(-0)') }
catch(_){}
approx(Math.atan(Infinity),1.570796,' atan(inf)')
approx(Math.atan(-Infinity),-1.570796,' atan(-inf)')


// ===================================================
// 15.8.2.5: atan2

t/15.08-math.t  view on Meta::CPAN

approx(Math.atan2("-.5",2),-0.24497866, 'atan2(string,x)')
approx(Math.atan2(2,true),1.1071, 'atan2(x,bool)')
approx(Math.atan2(true,2),0.4636476, 'atan2(bool,x)')
approx(Math.atan2(2,null), 1.570796, 'atan2(x,null)')
is(1/Math.atan2(null,2), Infinity, 'atan2(null,x)')

// 30 test
ok(is_nan(Math.atan2()), 'atan2()')
ok(is_nan(Math.atan2(3)), 'atan2 with one argument')
approx(Math.atan2(.36,.4), '0.732815', 'atan2(.36,.4)')
is(Math.atan2(NaN,2),NaN,' atan2(NaN,2)')
is(Math.atan2(2,NaN),NaN,' atan2(2,NaN)')
approx(Math.atan2(7,0),1.570796,' atan2(pos,0)')
approx(Math.atan2(7,-0),1.570796,' atan2(pos,-0)')
is(1/Math.atan2(0,0), Infinity,' atan2(0,0)')
try{skip("-0 is not supported",1);
    approx(Math.atan2(0,-0), '3.14159', 'atan2(0,-0)') }
catch(_){}
approx(Math.atan2(0,-5), '3.14159', 'atan2(0,neg)')
try{skip("-0 is not supported",4);
    is(1/Math.atan2(-0,5), -Infinity, 'atan2(-0,pos)')
    is(1/Math.atan2(-0,0), -Infinity, 'atan2(-0,0)')

t/15.08-math.t  view on Meta::CPAN

is(Math.ceil(true),1, 'ceil(bool)')
is(1/Math.ceil(null), Infinity, 'ceil(null)')

// 12 test
is(typeof Math.ceil(0), 'number', 'Math.ceil returns number, not object')
ok(is_nan(Math.ceil()), 'ceil()')
is(Math.ceil(56.36), 57, 'ceil(float)')
is(Math.ceil(57), 57, 'ceil(int)')
is(Math.ceil(-56.36), -56, 'ceil(-float)')
is(Math.ceil(-57), -57, 'ceil(-int)')
is(Math.ceil(NaN),NaN,' ceil(NaN)')
is(1/Math.ceil(0), 'Infinity', 'ceil(0)')
try{skip("-0 is not supported",2);
    is(1/Math.ceil(-0), '-Infinity', 'ceil(-0)')
    is(1/Math.ceil(-.5), '-Infinity', 'ceil(-.5)') }
catch(_){}
is(Math.ceil(Infinity),Infinity,' ceil(inf)')
is(Math.ceil(-Infinity),-Infinity,' ceil(-inf)')


// ===================================================

t/15.08-math.t  view on Meta::CPAN

ok(is_nan(Math.cos(undefined)), 'cos(undefined)')
ok(is_nan(Math.cos({})), 'cos(object)')
approx(Math.cos("-2"),-.4161468, 'cos(string)')
approx(Math.cos(true),.5403, 'cos(bool)')
is(Math.cos(null), 1, 'cos(null)')

// 8 test
is(typeof Math.cos(0), 'number', 'Math.cos returns number, not object')
ok(is_nan(Math.cos()), 'cos()')
approx(Math.cos(56.36), .98225, 'cos(float)')
is(Math.cos(NaN),NaN,' cos(NaN)')
is(Math.cos(0), 1, 'cos(0)')
is(Math.cos(-0), 1, 'cos(-0)')
is(Math.cos(Infinity),NaN,' cos(inf)')
is(Math.cos(-Infinity),NaN,' cos(-inf)')


// ===================================================
// 15.8.2.8: exp
// ===================================================

// 10 tests
method_boilerplate_tests(Math,'exp',1)

// 5 tests for type conversion
ok(is_nan(Math.exp(undefined)), 'exp(undefined)')
ok(is_nan(Math.exp({})), 'exp(object)')
approx(Math.exp("-2"),.135335, 'exp(string)')
approx(Math.exp(true),2.71828, 'exp(bool)')
is(Math.exp(null), 1, 'exp(null)')

// 8 test
is(typeof Math.exp(0), 'number', 'Math.exp returns number, not object')
ok(is_nan(Math.exp()), 'exp()')
approx(Math.exp(6.36), 578.246, 'exp(float)')
is(Math.exp(NaN),NaN,' exp(NaN)')
is(Math.exp(0), 1, 'exp(0)')
is(Math.exp(-0), 1, 'exp(-0)')
is(Math.exp(Infinity),Infinity,' exp(inf)')
is(1/Math.exp(-Infinity),Infinity,' exp(-inf)')


// ===================================================
// 15.8.2.9: floor
// ===================================================

t/15.08-math.t  view on Meta::CPAN

is(Math.floor(true),1, 'floor(bool)')
is(1/Math.floor(null), Infinity, 'floor(null)')

// 12 test
is(typeof Math.floor(0), 'number', 'Math.floor returns number, not object')
ok(is_nan(Math.floor()), 'floor()')
is(Math.floor(56.36), 56, 'floor(float)')
is(Math.floor(57), 57, 'floor(int)')
is(Math.floor(-56.36), -57, 'floor(-float)')
is(Math.floor(-57), -57, 'floor(-int)')
is(Math.floor(NaN),NaN,' floor(NaN)')
is(1/Math.floor(0), 'Infinity', 'floor(0)')
try{skip("-0 is not supported",1);
    is(1/Math.floor(-0), '-Infinity', 'floor(-0)') }
catch(_){}
is(1/Math.floor(0.5), 'Infinity', 'floor(.5)')
is(Math.floor(Infinity),Infinity,' floor(inf)')
is(Math.floor(-Infinity),-Infinity,' floor(-inf)')


// ===================================================

t/15.08-math.t  view on Meta::CPAN

ok(is_nan(Math.log({})), 'log(object)')
ok(is_nan(Math.log("-2")), 'log(string)')
is(1/Math.log(true),Infinity, 'log(bool)')
is(Math.log(null), -Infinity, 'log(null)')

// 10 test
is(typeof Math.log(0), 'number', 'Math.log returns number, not object')
ok(is_nan(Math.log()), 'log()')
approx(Math.log(6.36), '1.8500', 'log(pos)')
ok(is_nan(Math.log(-6.36)), 'log(neg)')
is(Math.log(NaN),NaN,' log(NaN)')
is(Math.log(0), -Infinity, 'log(0)')
is(Math.log(-0), -Infinity, 'log(-0)')
is(1/Math.log(1),Infinity, 'log(1)')
is(Math.log(Infinity),Infinity,' log(inf)')
is(Math.log(-Infinity),NaN,' log(-inf)')


// ===================================================
// 15.8.2.11: max
// ===================================================

// 10 tests
method_boilerplate_tests(Math,'max',2)

// 5 tests for type conversion
ok(is_nan(Math.max(undefined)), 'max(undefined)')
ok(is_nan(Math.max({})), 'max(object)')
is((Math.max("-2","3")), 3, 'max(string)')
is(Math.max(true,false),1, 'max(bool)')
is(Math.max(null,-1), 0, 'max(null)')

// 4 test
ok(Math.max() === -Infinity, 'argless max')
ok(is_nan(Math.max(3,NaN,4)), 'max with a nan arg')
ok(Math.max(1,3,-50,2) === 3, 'max with just numbers')
try{ skip("negative zero is not supported",1)
     is(1/Math.max(-0,0), Infinity, 'max considers 0 greater than -0') }
catch(_){}


// ===================================================
// 15.8.2.12: min
// ===================================================

t/15.08-math.t  view on Meta::CPAN


// 5 tests for type conversion
ok(is_nan(Math.min(undefined)), 'min(undefined)')
ok(is_nan(Math.min({})), 'min(object)')
is((Math.min("-2","3")), -2, 'min(string)')
is(Math.min(true,false),0, 'min(bool)')
is(Math.min(null,11), 0, 'min(null)')

// 4 test
ok(Math.min() === Infinity, 'argless min')
ok(is_nan(Math.min(3,NaN,4)), 'min with a nan arg')
ok(Math.min(1,3,-50,2) === -50, 'min with just numbers')
try{ skip("negative zero is not supported",1)
     is(1/Math.min(-0,0), -Infinity, 'min considers 0 greater than -0') }
catch(_){}


// ===================================================
// 15.8.2.13: pow
// ===================================================

t/15.08-math.t  view on Meta::CPAN

is(Math.pow(2,true),2, 'pow(x,bool)')
is(Math.pow(true,2),1, 'pow(bool,x)')
is(Math.pow(2,null), 1, 'pow(x,null)')
is(Math.pow(null,2), 0, 'pow(null,x)')

// 39 test
is(typeof Math.pow(0,0), 'number', 'Math.pow returns number, not object')
ok(is_nan(Math.pow()), 'pow()')
ok(is_nan(Math.pow(3)), 'pow with one argument')
approx(Math.pow(.36,.4), '0.6645398', 'pow(.36,.4)')
is(Math.pow(2,NaN),NaN,' pow(2,NaN)')
is(Math.pow(7,0),1,' pow(pos,0)')
is(Math.pow(NaN,0),1,' pow(NaN,0)')
is(Math.pow(7,-0),1,' pow(pos,-0)')
is(Math.pow(NaN,-0),1,' pow(NaN,-0)')
is(Math.pow(NaN,32),NaN,' pow(NaN,-0)')
is(Math.pow(23,Infinity), Infinity,' pow(>1,inf)')
is(Math.pow(-23,Infinity), Infinity,' pow(<-1,inf)')
is(1/Math.pow(23,-Infinity), Infinity,' pow(>1,-inf)')
is(1/Math.pow(-23,-Infinity), Infinity,' pow(<-1,-inf)')
is(Math.pow(1,Infinity), NaN,' pow(1,inf)')
is(Math.pow(1,-Infinity), NaN,' pow(1,-inf)')
is(1/Math.pow(.23,Infinity), Infinity,' pow(between 0 and 1,inf)')
is(1/Math.pow(-.23,Infinity), Infinity,' pow(between -1 and 0,inf)')
is(Math.pow(.23,-Infinity), Infinity,' pow(between 0 and 1,-inf)')
is(Math.pow(-.23,-Infinity), Infinity,' pow(between -1 and 0,-inf)')
is(Math.pow(Infinity,2), Infinity,' pow(inf,pos)')
is(1/Math.pow(Infinity,-2), Infinity,' pow(inf,neg)')
is(Math.pow(-Infinity,3), -Infinity,' pow(-inf,odd)')
is(Math.pow(-Infinity,2), Infinity,' pow(-inf,even)')
is(Math.pow(-Infinity,2.3), Infinity,' pow(-inf,float)')
try{skip("-0 is not supported",1);

t/15.08-math.t  view on Meta::CPAN

try{skip("-0 is not supported",1);
    is(1/Math.pow(-0,5), -Infinity, 'pow(-0,odd)')
}catch(_){}
is(1/Math.pow(-0,4),Infinity,' pow(-0,even)')
is(1/Math.pow(-0,4.3),Infinity,' pow(-0,float)')
try{skip("-0 is not supported",1);
 is(Math.pow(-0,-3),-Infinity,' pow(-0,-odd)')
}catch(_){}
is(Math.pow(-0,-4), Infinity,' pow(-0,-even)')
is(Math.pow(-0,-4.3), Infinity,' pow(-0,-float)')
is(Math.pow(-5,3.4), NaN,' pow(neg finite,float)')
is(Math.pow(-5,-3.4), NaN,' pow(neg finite,-float)')


// ===================================================
// 15.8.2.14: random
// ===================================================

// 10 tests
method_boilerplate_tests(Math,'random',0)

// 3 tests

t/15.08-math.t  view on Meta::CPAN

is(typeof Math.round(0), 'number', 'Math.round returns number, not object')
ok(is_nan(Math.round()), 'round()')
is(Math.round(56.36), 56, 'round(float) rounding down')
is(Math.round(56.51), 57, 'round(float) rounding up')
is(Math.round(56.5), 57, 'round(float) rounding up (halfway point)')
is(Math.round(57), 57, 'round(int)')
is(Math.round(-56.51), -57, 'round(-float) rounding down')
is(Math.round(-56.36), -56, 'round(-float) rounding up')
is(Math.round(-56.5), -56, 'round(-float) rounding up (halfway point)')
is(Math.round(-57), -57, 'round(-int)')
is(Math.round(NaN),NaN,' round(NaN)')
is(1/Math.round(0), 'Infinity', 'round(0)')
try{skip("-0 is not supported",2);
    is(1/Math.round(-0), '-Infinity', 'round(-0)')
    is(1/Math.round(-.5), '-Infinity', 'round(-.5)') }
catch(_){}
is(1/Math.round(0.4), 'Infinity', 'round(between 0 and .5)')
is(Math.round(Infinity),Infinity,' round(inf)')
is(Math.round(-Infinity),-Infinity,' round(-inf)')

// ===================================================

t/15.08-math.t  view on Meta::CPAN

ok(is_nan(Math.sin(undefined)), 'sin(undefined)')
ok(is_nan(Math.sin({})), 'sin(object)')
approx(Math.sin("-2"),-.909297, 'sin(string)')
approx(Math.sin(true),.84147, 'sin(bool)')
is(Math.sin(null), 0, 'sin(null)')

// 8 test
is(typeof Math.sin(0), 'number', 'Math.sin returns number, not object')
ok(is_nan(Math.sin()), 'sin()')
approx(Math.sin(56.36), -.18755, 'sin(float)')
is(Math.sin(NaN),NaN,' sin(NaN)')
is(1/Math.sin(0), Infinity, 'sin(0)')
try{skip("-0 is not supported",1);
 is(1/Math.sin(-0), -Infinity, 'sin(-0)')
}catch(_){}
is(Math.sin(Infinity),NaN,' sin(inf)')
is(Math.sin(-Infinity),NaN,' sin(-inf)')


// ===================================================
// 15.8.2.17: sqrt
// ===================================================

// 10 tests
method_boilerplate_tests(Math,'sqrt',1)

// 5 tests for type conversion
ok(is_nan(Math.sqrt(undefined)), 'sqrt(undefined)')
ok(is_nan(Math.sqrt({})), 'sqrt(object)')
approx(Math.sqrt("2"),1.4142, 'sqrt(string)')
is(Math.sqrt(true),1, 'sqrt(bool)')
is(Math.sqrt(null), 0, 'sqrt(null)')

// 9 tests
is(typeof Math.sqrt(0), 'number', 'Math.sqrt returns number, not object')
ok(is_nan(Math.sqrt()), 'sqrt()')
approx(Math.sqrt(56.36), 7.50732975, 'sqrt(float)')
is(Math.sqrt(NaN),NaN,' sqrt(NaN)')
is(Math.sqrt(-32),NaN,' sqrt(neg)')
is(1/Math.sqrt(0), Infinity, 'sqrt(0)')
try{skip("-0 is not supported",1);
 is(1/Math.sqrt(-0), -Infinity, 'sqrt(-0)')
}catch(_){}
is(Math.sqrt(Infinity),Infinity,' sqrt(inf)')
is(Math.sqrt(-Infinity),NaN,' sqrt(-inf)')


// ===================================================
// 15.8.2.18: tan
// ===================================================

// 10 tests
method_boilerplate_tests(Math,'tan',1)

// 5 tests for type conversion
ok(is_nan(Math.tan(undefined)), 'tan(undefined)')
ok(is_nan(Math.tan({})), 'tan(object)')
approx(Math.tan("-2"),2.1850, 'tan(string)')
approx(Math.tan(true),1.5574, 'tan(bool)')
is(Math.tan(null), 0, 'tan(null)')

// 8 test
is(typeof Math.tan(0), 'number', 'Math.tan returns number, not object')
ok(is_nan(Math.tan()), 'tan()')
approx(Math.tan(56.36), -.1909386799, 'tan(float)')
is(Math.tan(NaN),NaN,' tan(NaN)')
is(1/Math.tan(0), Infinity, 'tan(0)')
try{skip("-0 is not supported",1);
 is(1/Math.tan(-0), -Infinity, 'tan(-0)')
}catch(_){}
is(Math.tan(Infinity),NaN,' tan(inf)')
is(Math.tan(-Infinity),NaN,' tan(-inf)')

t/15.09-dates.t  view on Meta::CPAN


thyme = new Date(89, 4)
ok(thyme.constructor === Date, 'prototype of retval of new Date(foo,foo)')
is(Object.prototype.toString.call(thyme), '[object Date]',
	'class of new Date(foo,foo)')
is(thyme.getFullYear(), 1989, '2-digit first arg to new Date(foo,foo)')
is(thyme.getMonth(), 4, '2nd arg to new Date(foo,foo)')
is(new Date(0,3).getFullYear(), 1900, 'new Date(0,foo)')
is(new Date(99,2).getFullYear(), 1999, 'new Date(99,foo)')
is(new Date(100,3).getFullYear(), 100, 'new Date(100,foo)')
is(new Date(NaN,3).valueOf(), NaN, 'new Date(NaN, foo)')
is(new Date(2007,11,24).getDate(), 24, '3rd arg to new Date')
is(new Date(2007,11).getDate(), 1, 'implied 3rd arg to new Date')
is(new Date(2007,11,24,23).getHours(), 23, '4th arg to new Date')
is(new Date(2007,11,24).getHours(), 0, 'implied 4th arg to new Date')
is(new Date(2007,11,24,23,36).getMinutes(), 36, '5th arg to new Date')
is(new Date(2007,11,24,23).getMinutes(), 0, 'implied 5th arg to new Date')
is(new Date(2007,11,24,23,36,20).getSeconds(), 20, '6th arg to new Date')
is(new Date(2007,11,24,23,36).getSeconds(), 0,
	'implied 6th arg to new Date')
is(new Date(2007,11,24,23,36,20,865).getMilliseconds(), 865,
	'7th arg to new Date')
is(new Date(2007,11,24,23,36,20).getMilliseconds(), 0,
	'implied 7th arg to new Date')

// 11 tests (MakeDay)
is(new Date(0,NaN).valueOf(), NaN, 'new Date with NaN month')
is(new Date(0,0,NaN).valueOf(), NaN, 'new Date with nan date within month')
is(new Date(Infinity,0).valueOf(), NaN, 'new Date with inf year')
is(new Date(0,Infinity).valueOf(), NaN, 'new Date with inf month')
is(new Date(0,0,Infinity).valueOf(), NaN, 'new Date with inf mdate')
is(new Date(2007.87,0).getFullYear(), 2007, 'new Date with float year')
is(new Date(0,7.87).getMonth(), 7, 'new Date with float month')
is(new Date(0,0,27.87).getDate(), 27, 'new Date with float mdate')
is(new Date(0,0,32).getMonth(), 1, 'new Date\'s date overflow')
is(new Date(0,0,32).getDate(), 1, 'new Date\'s date overflow (again)')
is(new Date(0,85,32).getMonth(), 2, 'new Date with month out of range')

// 12 tests for MakeTime
is(new Date(0,0,1,6.5,0,0).getHours(), 6, 'new Date with float hours')
is(new Date(0,0,1,0,5.8,0).getMinutes(), 5, 'new Date with float mins')

t/15.09-dates.t  view on Meta::CPAN

is(new Date(0,0,1,0,61).getMinutes(), 1, 'new Date w/min overflow')
is(new Date(0,0,1,0,61).getHours(), 1, 'new Date w/min overflow (again)')
is(new Date(0,0,1,0,0,65).getSeconds(), 5, 'new Date with sec overflow')
is(new Date(0,0,1,0,0,65).getMinutes(), 1, 'new Date w/sec overflow again')
is(new Date(0,0,1,0,0,0,1200).getMilliseconds(), 200,
	'new Date with ms overflow')
is(new Date(0,0,1,0,0,0,1200).getSeconds(), 1,
	'new Date with ms overflow (again)')

// 4 tests for MakeDate
is(new Date(0,0,1,Infinity).valueOf(), NaN, 'new Date with infinite hours')
is(new Date(0,0,1,0,Infinity).valueOf(), NaN, 'new Date w/infinite mins')
is(new Date(0,0,1,0,0,Infinity).valueOf(), NaN, 'new Date w/infinite secs')
is(new Date(0,0,1,0,0,0,Infinity).valueOf(), NaN, 'new Date w/infinite ms')

// 2 tests for ThymeClip
is(new Date(285619+1970,0).valueOf(), NaN,
	'new Date with year out of range')
is(new Date(1970-285619,0).valueOf(), NaN,
	'new Date with negative year out of range')

// 1 test for UTC
thyme = new Date(7,8)
is(thyme.valueOf() - Date.UTC(7,8), thyme.getTimezoneOffset() * 60000,
	'new Date(foo,foo)\'s local-->GMT conversion')

// 5 tests for type conversion
d = new Date(null,null,null,null,null,null,null)
is(+d, -2209075200000 + d.getTimezoneOffset()*60000,
	'new Date(nullx7)')
is(+new Date(void 0,void 0,void 0,void 0,void 0,void 0,void 0), NaN,
	'new Date(undefinedx7)')
d = new Date(true,true,true,true,true,true,true)
is(+d, -2174770738999 + d.getTimezoneOffset()*60000,
	'new Date(boolx7)')
d = new Date('1','1','1','1','1','1','1')
is(+d, -2174770738999 + d.getTimezoneOffset()*60000,
	'new Date(strx7)')
is(+new Date({},{},{},{},{},{},{}), NaN,
	'new Date(objx7)')

// 3 tests for edge cases
// We  used  to  cache  date+year-to-timevalue  calculations  keyed  on
// pack("ll"), but that made Infinity, 4294967295 and -1 all share the
// same entry.  So  new Date(-1,0)  would give different results after
// new Date(Infinity,0). Also, new Date() with 2 args or more couldn’t
// handle negative years or months.
new Date(Infinity,0);
is(new Date(4294967295,0).valueOf(), NaN, 'new Date(4294967295,0)')
like(new Date(-1,0), '/^Fri Jan  1 00:00:00 -001 /',
  'new Date(-1,0)')
like(new Date(-1,-1), '/^Tue Dec  1 00:00:00 -002 /',
  'new Date(-1,-1)')


// ===================================================
// 15.9.3.2 new Date (1 arg)
// ===================================================

// 10 tests

thyme = new Date(89)
ok(thyme.constructor === Date, 'prototype of retval of new Date(foo)')
is(Object.prototype.toString.call(thyme), '[object Date]',
	'class of new Date(foo)')
ok(thyme.valueOf()===89, 'value of new Date(num)')
ok(new Date(new Number(673)).valueOf()===673,
	'value of new Date(new Number)')
is(new Date(8.65e15).valueOf(), NaN, 'value of new Date(8.65e15)')
is(new Date('Wed, 28 May 268155 05:20:00 GMT').valueOf(), 8400000000000000,
	'new Date(gmt string)')
is(new Date(new String('Mon, 31 Dec 2007 17:59:32 GMT')).valueOf(),
	1199123972000, 'new Date(gmt string obj)')
is(new Date('Tue Apr 11 08:06:40 271324 -0700').getTime(),
	8500000000000000, 'new Date(c string)')
is(new Date(new String('Mon Dec 31 11:42:40 2007 -0800')).getTime(),
	1199130160000, 'new Date(c string object)')
is(+new Date('1 apr 2007 GMT'), 1175385600000,
	'new Date(str) using Date::Parse')

// 4 tests for type conversion
is(+new Date(undefined), NaN, 'new Date(undefined)')
is(+new Date(true), 1, 'new Date(bool)')
is(+new Date(null), 0, 'new Date(null)')
is(new Date({
	toString: function(){return '4 apr 2007'},
	valueOf: function(){ return '1 apr 2007' /* april fools’ */ }
}).getDate(), 4,
'new Date(foo) parses foo, not foo->primitive, when the latter is a string'
)


t/15.09-dates.t  view on Meta::CPAN

ok(Date.parse('Wed, 28 May 268155 05:20:00 GMT') === 8400000000000000,
	'Date.parse(gmt string)')
is(Date.parse(new String('Mon, 31 Dec 2007 17:59:32 GMT')),
	1199123972000, 'Date.parse(gmt string obj)')
is(Date.parse('Tue Apr 11 08:06:40 271324 -0700'),
	8500000000000000, 'Date.parse(c string)')
is(Date.parse('1 apr 2007 GMT'), 1175385600000,
	'Date.parse(str) using Date::Parse')

// 4 tests for type conversion
is(Date.parse(null), NaN, 'Date.parse(null)')
is(Date.parse(void 0), NaN, 'Date.parse(undefined)')
is(Date.parse(true), NaN, 'Date.parse(bool)')
is(Date.parse(678), Date.parse('678'), 'Date.parse(number)')


// ===================================================
// 15.9.4.3 Date.UTC
// ===================================================

// 10 tests
method_boilerplate_tests(Date,'UTC',7)

// 12 tests
ok(is_nan(Date.UTC()), 'Date.UTC()')
ok(is_nan(Date.UTC(1)),'Date.UTC(1 arg)')
ok(Date.UTC(89,4) === 609984000000,
	'Date.UTC(foo,foo) with 2-digit first arg')
is(Date.UTC(0,3), -2201212800000, 'Date.UTC(0,foo)')
is(Date.UTC(99,2), 920246400000, 'Date.UTC(99,foo)')
is(Date.UTC(100,3), -59003683200000, 'Date.UTC(100,foo)')
is(Date.UTC(NaN,3), NaN, 'Date.UTC(NaN, foo)')
is(Date.UTC(2007,11,24), 1198454400000, 'Date.UTC(3 args)')
is(Date.UTC(2007,11,24,23), 1198537200000, 'Date.UTC(4 args)')
is(Date.UTC(2007,11,24,23,36), 1198539360000, 'Date.UTC(5 args)')
is(Date.UTC(2007,11,24,23,36,20), 1198539380000, 'Date.UTC (6 args)')
is(Date.UTC(2007,11,24,23,36,20,865), 1198539380865,
	'Date.UTC (7 args)')

// 10 tests (MakeDay)
is(Date.UTC(0,NaN), NaN, 'Date.UTC with NaN month')
is(Date.UTC(0,0,NaN), NaN, 'Date.UTC with nan date within month')
is(Date.UTC(Infinity,0), NaN, 'Date.UTC with inf year')
is(Date.UTC(0,Infinity), NaN, 'Date.UTC with inf month')
is(Date.UTC(0,0,Infinity), NaN, 'Date.UTC with inf mdate')
is(Date.UTC(2007.87,0), 1167609600000, 'Date.UTC with float year')
is(Date.UTC(0,7.87), -2190672000000, 'Date.UTC with float month')
is(Date.UTC(0,0,27.87), -2206742400000, 'Date.UTC with float mdate')
is(Date.UTC(0,0,32), -2206310400000, 'Date.UTC\'s date overflow')
is(Date.UTC(0,85,32), -1982793600000, 'Date.UTC with month out of range')

// 8 tests for MakeTime
is(Date.UTC(0,0,1,6.5,0,0), -2208967200000, 'Date.UTC with float hours')
is(Date.UTC(0,0,1,0,5.8,0), -2208988500000, 'Date.UTC with float mins')
is(Date.UTC(0,0,1,0,5.8,7.9), -2208988493000, 'Date.UTC with float secs')
is(Date.UTC(0,0,1,0,0,0,7.9), -2208988799993, 'Date.UTC w/ float ms')
is(Date.UTC(0,0,1,26), -2208895200000, 'Date.UTC with hour overflow')
is(Date.UTC(0,0,1,0,61), -2208985140000, 'Date.UTC w/min overflow')
is(Date.UTC(0,0,1,0,0,65), -2208988735000, 'Date.UTC with sec overflow')
is(Date.UTC(0,0,1,0,0,0,1200), -2208988798800,
	'Date.UTC with ms overflow')

// 4 tests for MakeDate
is(Date.UTC(0,0,1,Infinity), NaN, 'Date.UTC with infinite hours')
is(Date.UTC(0,0,1,0,Infinity), NaN, 'Date.UTC w/infinite mins')
is(Date.UTC(0,0,1,0,0,Infinity), NaN, 'Date.UTC w/infinite secs')
is(Date.UTC(0,0,1,0,0,0,Infinity), NaN, 'Date.UTC w/infinite ms')

// 2 tests for ThymeClip
is(Date.UTC(285619+1970,0), NaN,
	'Date.UTC with year out of range')
is(Date.UTC(1970-285619,0), NaN,
	'Date.UTC with negative year out of range')

// 5 tests for type conversion
is(+Date.UTC(null,null,null,null,null,null,null), -2209075200000,
	'Date.UTC(nullx7)')
is(+Date.UTC(void 0,void 0,void 0,void 0,void 0,void 0,void 0), NaN,
	'Date.UTC(undefinedx7)')
is(+Date.UTC(true,true,true,true,true,true,true), -2174770738999,
	'Date.UTC(boolx7)')
is(+Date.UTC('1','1','1','1','1','1','1'), -2174770738999,
	'Date.UTC(strx7)')
is(+Date.UTC({},{},{},{},{},{},{}), NaN,
	'Date.UTC(objx7)')


// ===================================================
// 15.9.5 Date.prototype
// ===================================================

// 3 tests
is(Object.prototype.toString.apply(Date.prototype), '[object Date]',
	'class of Date.prototype')

t/15.09-dates.t  view on Meta::CPAN


// 10 tests
method_boilerplate_tests(Date.prototype,'getFullYear',0)

/* I hope no one changes dst on new year’s day. These tests assume that
   never happens. */

offset = new Date(new Date().getYear(), 0, 1).getTimezoneOffset() * 60000;

// 12 tests
ok(is_nan(new Date(NaN).getFullYear()), 'getFullYear (NaN)')
ok(new Date(26223868800000+offset).getFullYear() === 2801,
	'getFullYear with 1 Jan quadricentennial+1')
ok(new Date(26223868799999+offset).getFullYear() === 2800,
	'getFullYear with 1 Jan quadricentennial+1 year - 1 ms')
ok(new Date(26197387200000+offset).getFullYear()===2800,
	'getFullYear with quadricentennial leap day')
ok(new Date(23068108800000+offset).getFullYear() === 2701,
	'getFullYear - turn of the century...')
ok(new Date(23068108799999+offset).getFullYear() === 2700,
	'              ... when year % 400')

t/15.09-dates.t  view on Meta::CPAN



// ===================================================
// 15.9.5.11 Date.prototype. getUTCFullYear
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getUTCFullYear',0)

// 12 tests
ok(is_nan(new Date(NaN).getUTCFullYear()), 'getUTCFullYear (NaN)')
ok(new Date(26223868800000).getUTCFullYear() === 2801,
	'getUTCFullYear with 1 Jan quadricentennial+1')
ok(new Date(26223868799999).getUTCFullYear() === 2800,
	'getUTCFullYear with 1 Jan quadricentennial+1 year - 1 ms')
ok(new Date(26197387200000).getUTCFullYear()===2800,
	'getUTCFullYear with quadricentennial leap day')
ok(new Date(23068108800000).getUTCFullYear() === 2701,
	'getUTCFullYear - turn of the century...')
ok(new Date(23068108799999).getUTCFullYear() === 2700,
	'              ... when year % 400')

t/15.09-dates.t  view on Meta::CPAN

// ===================================================
// 15.9.5.12 Date.prototype. getMonth
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getMonth',0)

offset = new Date(new Date().getYear(), 0, 1).getTimezoneOffset() * 60000;

// 50 tests
ok(is_nan(new Date(NaN).getMonth()), 'getMonth (NaN)')

ok(new Date(1199188800000 +offset).getMonth() === 0,
	'getMonth - 1 Jan in leap year')
is(new Date(1201780800000 +offset).getMonth(),  0,
	'getMonth - 31 Jan in leap year')
is(new Date(1201867200000 +offset).getMonth(),  1,
	'getMonth - 1 Feb in leap year')
is(new Date(1204286400000 +offset).getMonth(),  1,
	'getMonth - 29 Feb in leap year')
is(new Date(1204372800000 +offset).getMonth(),  2,

t/15.09-dates.t  view on Meta::CPAN



// ===================================================
// 15.9.5.13 Date.prototype. getUTCMonth
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getUTCMonth',0)

// 50 tests
ok(is_nan(new Date(NaN).getUTCMonth()), 'getUTCMonth (NaN)')

ok(new Date(1199188800000 ).getUTCMonth() === 0,
	'getUTCMonth - 1 Jan in leap year')
is(new Date(1201780800000 ).getUTCMonth(),  0,
	'getUTCMonth - 31 Jan in leap year')
is(new Date(1201867200000 ).getUTCMonth(),  1,
	'getUTCMonth - 1 Feb in leap year')
is(new Date(1204286400000 ).getUTCMonth(),  1,
	'getUTCMonth - 29 Feb in leap year')
is(new Date(1204372800000 ).getUTCMonth(),  2,

t/15.09-dates.t  view on Meta::CPAN

// ===================================================
// 15.9.5.14 Date.prototype. getDate
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getDate',0)

offset = new Date(new Date().getYear(), 0, 1).getTimezoneOffset() * 60000;

// 50 tests
ok(is_nan(new Date(NaN).getDate()), 'getDate (NaN)')

ok(new Date(1199188800000 +offset).getDate() === 1,
	'getDate - 1 Jan in leap year')
is(new Date(1201780800000 +offset).getDate(),  31,
	'getDate - 31 Jan in leap year')
is(new Date(1201867200000 +offset).getDate(),  1,
	'getDate - 1 Feb in leap year')
is(new Date(1204286400000 +offset).getDate(),  29,
	'getDate - 29 Feb in leap year')
is(new Date(1204372800000 +offset).getDate(),  1,

t/15.09-dates.t  view on Meta::CPAN



// ===================================================
// 15.9.5.15 Date.prototype. getUTCDate
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getUTCDate',0)

// 50 tests
ok(is_nan(new Date(NaN).getUTCDate()), 'getUTCDate (NaN)')

ok(new Date(1199188800000 ).getUTCDate() === 1,
	'getUTCDate - 1 Jan in leap year')
is(new Date(1201780800000 ).getUTCDate(),  31,
	'getUTCDate - 31 Jan in leap year')
is(new Date(1201867200000 ).getUTCDate(),  1,
	'getUTCDate - 1 Feb in leap year')
is(new Date(1204286400000 ).getUTCDate(),  29,
	'getUTCDate - 29 Feb in leap year')
is(new Date(1204372800000 ).getUTCDate(),  1,

t/15.09-dates.t  view on Meta::CPAN

// ===================================================
// 15.9.5.16 Date.prototype. getDay
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getDay',0)

offset = new Date(new Date().getYear(), 0, 1).getTimezoneOffset() * 60000;

// 9 tests
ok(is_nan(new Date(NaN).getDay()), 'getDay (NaN)')
ok(new Date(1200225600000+offset).getDay() === 0, 'getDay (Sunday)')
ok(new Date(1200312000000+offset).getDay() === 1, 'getDay (Monday)')
ok(new Date(1200398400000+offset).getDay() === 2, 'getDay (Tuesday)')
ok(new Date(1200484800000+offset).getDay() === 3, 'getDay (Wednesday)')
ok(new Date(1200571200000+offset).getDay() === 4, 'getDay (Thursday)')
ok(new Date(1200657600000+offset).getDay() === 5, 'getDay (Friday)')
ok(new Date(1200744000000+offset).getDay() === 6, 'getDay (Saturday)')

error = false
try{Date.prototype. getDay.apply([])}

t/15.09-dates.t  view on Meta::CPAN



// ===================================================
// 15.9.5.17 Date.prototype. getUTCDay
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getUTCDay',0)

// 9 tests
ok(is_nan(new Date(NaN).getUTCDay()), 'getUTCDay (NaN)')
ok(new Date(1200225600000).getUTCDay() === 0, 'getUTCDay (Sunday)')
ok(new Date(1200312000000).getUTCDay() === 1, 'getUTCDay (Monday)')
ok(new Date(1200398400000).getUTCDay() === 2, 'getUTCDay (Tuesday)')
ok(new Date(1200484800000).getUTCDay() === 3,
	'getUTCDay (Wednesday)')
ok(new Date(1200571200000).getUTCDay() === 4,
	'getUTCDay (Thursday)')
ok(new Date(1200657600000).getUTCDay() === 5, 'getUTCDay (Friday)')
ok(new Date(1200744000000).getUTCDay() === 6,
	'getUTCDay (Saturday)')

t/15.09-dates.t  view on Meta::CPAN

// ===================================================
// 15.9.5.18 Date.prototype. getHours
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getHours',0)

offset = new Date(new Date().getYear(), 0, 1).getTimezoneOffset() * 60000;

// 3 tests
ok(is_nan(new Date(NaN).getHours()), 'getHours (NaN)')
ok(new Date(1200225612345+offset).getHours() === 12, 'getHours')

error = false
try{Date.prototype. getHours.apply([])}
catch(e){error = e}
ok(error instanceof TypeError, 'getHours death')


// ===================================================
// 15.9.5.19 Date.prototype. getUTCHours
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getUTCHours',0)

// 3 tests
ok(is_nan(new Date(NaN).getUTCHours()), 'getUTCHours (NaN)')
ok(new Date(1200225612345).getUTCHours() === 12, 'getUTCHours')

error = false
try{Date.prototype. getUTCHours.apply([])}
catch(e){error = e}
ok(error instanceof TypeError, 'getUTCHours death')


// ===================================================
// 15.9.5.20 Date.prototype. getMinutes
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getMinutes',0)

offset = new Date(new Date().getYear(), 0, 1).getTimezoneOffset() * 60000;

// 3 tests
ok(is_nan(new Date(NaN).getMinutes()), 'getMinutes (NaN)')
ok(new Date(1200225612345+offset).getMinutes() === 0, 'getMinutes')

error = false
try{Date.prototype. getMinutes.apply([])}
catch(e){error = e}
ok(error instanceof TypeError, 'getMinutes death')


// ===================================================
// 15.9.5.21 Date.prototype. getUTCMinutes
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getUTCMinutes',0)

// 3 tests
ok(is_nan(new Date(NaN).getUTCMinutes()), 'getUTCMinutes (NaN)')
ok(new Date(1200225612345).getUTCMinutes() === 0, 'getUTCMinutes')

error = false
try{Date.prototype. getUTCMinutes.apply([])}
catch(e){error = e}
ok(error instanceof TypeError, 'getUTCMinutes death')


// ===================================================
// 15.9.5.22 Date.prototype.getSeconds
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getSeconds',0)

// 3 tests
ok(is_nan(new Date(NaN).getSeconds()), 'getSeconds (NaN)')
ok(new Date(1200225613345).getSeconds() === 13, 'getSeconds')

error = false
try{Date.prototype. getSeconds.apply([])}
catch(e){error = e}
ok(error instanceof TypeError, 'getSeconds death')


// ===================================================
// 15.9.5.23 Date.prototype.getUTCSeconds
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getUTCSeconds',0)

// 3 tests
ok(is_nan(new Date(NaN).getUTCSeconds()), 'getUTCSeconds (NaN)')
ok(new Date(1200225613345).getUTCSeconds() === 13, 'getUTCSeconds')

error = false
try{Date.prototype. getUTCSeconds.apply([])}
catch(e){error = e}
ok(error instanceof TypeError, 'getUTCSeconds death')


// ===================================================
// 15.9.5.24 Date.prototype.getMilliseconds
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getMilliseconds',0)

// 3 tests
ok(is_nan(new Date(NaN).getMilliseconds()), 'getMilliseconds (NaN)')
ok(new Date(1200225613345).getMilliseconds() === 345, 'getMilliseconds')

error = false
try{Date.prototype. getMilliseconds.apply([])}
catch(e){error = e}
ok(error instanceof TypeError, 'getMilliseconds death')


// ===================================================
// 15.9.5.25 Date.prototype.getUTCMilliseconds
// ===================================================

// 10 tests
method_boilerplate_tests(Date.prototype,'getUTCMilliseconds',0)

// 3 tests
ok(is_nan(new Date(NaN).getUTCMilliseconds()), 'getUTCMilliseconds (NaN)')
ok(new Date(1200225613345).getUTCMilliseconds() === 345, 'getUTCMilliseconds')

error = false
try{Date.prototype. getUTCMilliseconds.apply([])}
catch(e){error = e}
ok(error instanceof TypeError, 'getUTCMilliseconds death')


// ===================================================
// 15.9.5.26 Date.prototype.getTimezoneOffset

t/15.10-regexp-objects.t  view on Meta::CPAN

is(rg.exec('aah'), 'ah', 'exec with fractional lastIndex')
rg.lastIndex=57
is(rg.exec('abc'), null, 'exec with large lastIndex')
is(rg.lastIndex, 0,'exec with large lastIndex resets index to 0')
r.lastIndex=57
r.exec('the')
is(r.lastIndex, 0,'exec failure resets lastIndex even without /g')
rg.lastIndex=-5
is(rg.exec('abc'), null, 'exec with negative lastIndex')
is(rg.lastIndex, 0,'exec with negative lastIndex resets index to 0')
rg.lastIndex=NaN
is(rg.exec('abc'), 'ab', 'exec with NaN lastIndex')
;(rg2=/./g).lastIndex=Infinity
is(rg2.exec('abc'), null, 'exec with infinite lastIndex')
;(rg2=/(?:)/g).lastIndex=4
is(rg2.exec('abc'), null, 'exec with large lastIndex and null pattern')
r.lastIndex="57"
is(r.exec("abc"), "ab", 'exec ignores lastIndex without /g')
is(typeof r.lastIndex + ': ' + r.lastIndex, "string: 57",
  'successful exec without /g leaves lastIndex untouched');
rg.lastIndex="1"; is(rg.exec('abac'), 'ac', 'exec with string lastIndex')
rg.lastIndex=true; is(rg.exec('abac'), 'ac', 'exec with bool lastIndex')

t/bind_class.t  view on Meta::CPAN

	is('' + t4, 'no hint')	
	is(   + t4, 98765)
	is(String(t4), 'string')
	is(+t5, 12345)
	error=false;try{String(t5)}catch(e){error = true}ok(error)
	is(String(t6), 'Here you are')
	error=false;try{+ t6}catch(e){error = true}ok(error)
	is(String(t7), 'string')
//diag(t7)
//diag(+ (t7))
	is(     + t7 , NaN)
	error=false;try{'' + t7}catch(e){error = true}ok(error)
	error=false;try{'' + t8}catch(e){error = true}ok(error)
	error=false;try{+ t8}catch(e){error = true}ok(error)
	error=false;try{String(t8)}catch(e){error = true}ok(error)

})()
})() 


#--------------------------------------------------------------------#

t/bind_class.t  view on Meta::CPAN

	name => '___',
	methods => [qw[ foo:Number ___::bar ___::baz:null oof:null ]],
	static_methods =>[qw[FOO:Number ___::BAR ___::BAZ:null oof:null]],
	to_primitive => 'prim:Boolean',
	props => [qw[phoo:Number ___::barr ___::bazz:null ooph:null ]],
	static_props=>[qw[PHOO:Number ___::BARR ___::BAZZ:null ooph:null]],
);

{ # 17 tests here:
	my $foo = $j->upgrade(bless[],'___');
	is $foo->method('foo'), 'NaN', 'methods => [method:func]';
	is $foo->method('___::bar'), 'rab::___',
		'methods => [Package::method]';
	is $foo->method('___::baz'), 'zab::___',
		'methods => [Package::method:thing]';
	is $foo->method('oof'), 'null', 'methods => [method:null]';

	my $con#structor
		= $j->{___};
	is $con->method('FOO'), 'NaN', 'static_methods => [method:func]';
	is $con->method('___::BAR'), 'RAB::___',
		'static_methods => [Package::method]';
	is $con->method('___::BAZ'), 'ZAB::___',
		'static_methods => [Package::method:thing]';
	is $con->method('oof'), 'null', 'static_methods => [method:null]';

	is $foo->to_primitive, 'true', 'to_primtive => method:func';

	is $foo->{phoo}, 'NaN', 'props => [method:func]';
	is $foo->{'___::barr'}, 'rrab::___',
		'props => [Package::method]';
	is $foo->{'___::bazz'}, 'zzab::___',
		'props => [Package::method:thing]';
	is $foo->{ooph}, 'null', 'props => [method:null]';

	is $con->{PHOO}, 'NaN', 'static_props => [method:func]';
	is $con->{'___::BARR'}, 'RRAB::___',
		'static_props => [Package::method]';
	is $con->{'___::BAZZ'}, 'ZZAB::___',
		'static_props => [Package::method:thing]';
	is $con->{ooph}, 'null', 'static_props => [method:null]';

}

sub __::AUTOLOAD{scalar reverse $__'AUTOLOAD}
sub __::oof{}

t/bind_class.t  view on Meta::CPAN

	static_props => {qw{
		AHTI foo:Number
		URAI __::BARR
		ORUT __::BAZZ:null
		WHAT oof:null
	}},
);

{ # 17 tests here:
	my $foo = $j->upgrade(bless[],'__');
	is $foo->method('phew'), 'NaN',
		'methods => {name => method:func}';
	is $foo->method('bare'), 'rab::__',
		'methods => {name => Package::method}';
	is $foo->method('bass'), 'zab::__',
		'methods => {name => Package::method:thing}';
	is $foo->method('poof'), 'null',
		'methods => {name => method:null}';

	my $con#structor
		= $j->{__};
	is $con->method('PHEW'), 'NaN',
		'static_methods => {name => method:func}';
	is $con->method('BARE'), 'RAB::__',
		'static_methods => {name => Package::method}';
	is $con->method('BASS'), 'ZAB::__',
		'static_methods => {name => Package::method:thing}';
	is $con->method('POOF'), 'null',
		'static_methods => {name => method:null}';

	is $foo->to_primitive, 'mirp::__',
		'to_primtive => Pack::method:null';

	is $foo->{hati}, 'NaN', 'props => {name => method:func}';
	is $foo->{'uraa'}, 'rrab::__',
		'props => {name => Package::method}';
	is $foo->{'orut'}, 'zzab::__',
		'props => {name => Package::method:thing}';
	is $foo->{hwha}, 'null', 'props => {mname => ethod:null}';

	is $con->{AHTI}, 'NaN', 'static_props => {name => method:func}';
	is $con->{'URAI'}, 'RRAB::__',
		'static_props => {name => Package::method}';
	is $con->{'ORUT'}, 'ZZAB::__',
		'static_props => {name => Package::method:thing}';
	is $con->{WHAT}, 'null', 'static_props => {name => method:null}';

}

sub _::AUTOLOAD{scalar reverse $_'AUTOLOAD}
sub _::oof{}

t/bind_class.t  view on Meta::CPAN

		WHAT => { fetch => 'oof:null'   },
	},
);

{ # 9 tests here:
	my $foo = $j->upgrade(bless[],'_');

	is $foo->to_primitive, 'mirp::_',
		'to_primtive => Pack::method:null';

	is $foo->{hati}, 'NaN',
		'props => {name => {fetch => method:func}}';
	is $foo->{'uraa'}, 'rab::_',
		'props => {name => {fetch => Package::method}}';
	is $foo->{'orut'}, 'zab::_',
		'props => {name => {fetch => Package::method:thing}}';
	is $foo->{hwha}, 'null',
		'props => {mname => {fetch => ethod:null}}';

	my $con#structor
		= $j->{_};
	is $con->{AHTI}, 'NaN',
		'static_props => {name => {fetch => method:func}}';
	is $con->{'URAI'}, 'RAB::_',
		'static_props => {name => {fetch => Package::method}}';
	is $con->{'ORUT'}, 'ZAB::_',
		'static_props => {name => {fetch => Pack::method:thing}}';
	is $con->{WHAT}, 'null',
		'static_props => {name => {fetch => method:null}}';

}

t/bind_class.t  view on Meta::CPAN

$j->bind_class(name => 'ov');
$j->bind_class(name => 'un');
is ($j->upgrade(bless [], 'ov')->to_string, 43,
	'Perl\'s string overloading in JS');
is ($j->upgrade(bless [], 'ov')->to_number, 43,
	'Perl\'s number overloading in JS');
is ($j->upgrade(bless [], 'ov')->to_primitive, 43,
	'Perl\'s overloading in JS');
is ($j->upgrade(bless [], 'un')->to_string, '[object un]',
	'Perl\'s stringification ignored without overloading');
is ($j->upgrade(bless [], 'un')->to_number, 'NaN',
	'Perl\'s numbification ignored without overloading');
is ($j->upgrade(bless [], 'un')->to_primitive, '[object un]',
	'Perl\'s stringification ignored without overloading (2)');


#--------------------------------------------------------------------#
# Tests 177-98: Scalar context for methods/coderefs passed to bind_class

sub scalartest::ten { 3, 10 }
sub scalartest::three { 7, 3 }

t/je-number.t  view on Meta::CPAN

}


#--------------------------------------------------------------------#
# Tests 53-64: to_string

{
	isa_ok my $thing = $inf->to_string, 'JE::String';
	is $thing, 'Infinity',  '$inf->to_string is "Infinity"';
	isa_ok    $thing = $nan->to_string, 'JE::String';
	is $thing, 'NaN', '$nan->to_string is "NaN"';
	isa_ok    $thing = $int->to_string, 'JE::String';
	is $thing, '17', '$int->to_string is "17"';
	isa_ok    $thing = $sci->to_string, 'JE::String';
	is $thing, 17.5e-9, '$sci->to_string is 1.75e-8';
	isa_ok    $thing = $n->to_string, 'JE::String';
	is $thing, '17.6', '$n->to_string is 17.6';
	isa_ok    $thing = $z->to_string, 'JE::String';
	is $thing, '0', '$z->to_string is 0';
}

t/je-number.t  view on Meta::CPAN

#--------------------------------------------------------------------#
# Test 78: global

is refaddr $j, refaddr global $n, '->global';


#--------------------------------------------------------------------#
# Tests 79-96: Overloading

is "$inf", 'Infinity', '"$inf"';
is "$nan", 'NaN',      '"$nan"';
is "$int", '17',       '"$int"';
TODO : {
	local $TODO = 'number stringification not yet acc. to spec.';
	is "$sci", '1.75e-8',  '"$sci"';
}
is "$n",   '17.6',     '"$n"';
is "$z",   '0',        '"$z"';
is !$inf,  '',         '!$inf';
is !$nan,  '1',        '!$nan';
is !$int,  '',         '!$int';



( run in 0.986 second using v1.01-cache-2.11-cpan-fd5d4e115d8 )