view release on metacpan or search on metacpan
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
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).
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.
⢠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
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
- 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"'
$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({
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,
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
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';