Perlito5
view release on metacpan or search on metacpan
lib/Perlito5/JavaScript2/IO.pm view on Meta::CPAN
use v5;
package Perlito5::JavaScript2::IO;
sub emit_javascript2 {
return <<'EOT';
//
//
// lib/Perlito5/JavaScript2/IO.js
//
// I/O functions for "Perlito" Perl5-in-JavaScript2
//
// AUTHORS
//
// Flavio Soibelmann Glock fglock@gmail.com
//
// COPYRIGHT
//
// Copyright 2009, 2010, 2011, 2012 by Flavio Soibelmann Glock and others.
//
// This program is free software; you can redistribute it and/or modify it
// under the same terms as Perl itself.
//
// See http://www.perl.com/perl/misc/Artistic.html
var isNode = typeof require != "undefined";
if (isNode) {
var fs = require("fs");
p5typeglob_set("Perlito5::IO", "print", function (filehandle, List__, p5want) {
try {
var v = filehandle;
var pkg;
if (CORE.ref([v])) {
// looks like a filehandle
pkg = v;
}
else {
// looks like a package name
pkg = p5make_package(v);
}
if (!pkg.file_handle) {
pkg.file_handle = {};
}
var handle_id = pkg.file_handle.id;
if (handle_id == 1) {
for (var i = 0; i < List__.length; i++) {
process.stdout.write(p5str(List__[i]));
}
}
else if (handle_id == 2) {
for (var i = 0; i < List__.length; i++) {
process.stderr.write(p5str(List__[i]));
}
}
else {
for (var i = 0; i < List__.length; i++) {
fs.writeSync(handle_id, p5str(List__[i]));
}
}
return 1;
}
catch(err) {
p5pkg["main"]["v_!"] = err;
return '';
}
} );
var p5_extra_buffer_size = 100;
p5typeglob_set("Perlito5::IO", "read", function (filehandle, List__, p5want) {
try {
var v = filehandle;
var length = List__.shift();
var pkg;
if (CORE.ref([v])) {
// looks like a filehandle
pkg = v;
}
else {
// looks like a package name
pkg = p5make_package(v);
}
if (!pkg.file_handle) {
pkg.file_handle = {};
}
var handle_id = pkg.file_handle.id;
if (!pkg.file_handle.buffer) {
( run in 3.962 seconds using v1.01-cache-2.11-cpan-140bd7fdf52 )