add PrintStream and StringBuilder

This commit is contained in:
Andreas Gal 2014-07-06 12:19:14 -07:00
Родитель 01f95592c7
Коммит 896bb5b715
4 изменённых файлов: 72 добавлений и 1 удалений

Просмотреть файл

@ -85,7 +85,6 @@ Classes.prototype.loadJSFile = function(fileName) {
var fun = new Function("module", "require", "util", util.decodeUtf8(bytes));
var module = {};
function require(className) {
console.log("className=" + className);
return self.getClass(className);
}
fun(module, require, util);

Просмотреть файл

@ -0,0 +1,28 @@
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* vim: set shiftwidth=4 tabstop=4 autoindent cindent expandtab: */
'use strict';
var PrintStream = module.exports = function() {
if (this instanceof PrintStream) {
} else {
return new PrintStream();
}
};
PrintStream.getClassName = function() {
return "java/io/PrintStream";
}
PrintStream.prototype.print = function() {
util.print.apply(null, arguments);
};
PrintStream.prototype.println = function() {
util.print.apply(null, arguments);
util.print("\n");
};
PrintStream.prototype.format = function(fmt, args) {
util.print(util.format.apply(null, [fmt].concat(args)));
}

Просмотреть файл

@ -0,0 +1,43 @@
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* vim: set shiftwidth=4 tabstop=4 autoindent cindent expandtab: */
'use strict';
var Object = require("java/lang/Object.js");
var StringBuilder = module.exports = function(p) {
if (this instanceof StringBuilder) {
if (typeof p === "number") {
this._buf = new Array(p).join(' ');
} else {
this._buf = p || "";
}
} else {
return new StringBuilder(p);
}
}
util.inherits(StringBuilder, Object);
StringBuilder.getClassName = function() {
return "java/lang/StringBuilder";
}
StringBuilder.prototype["<init>"] = function() {
for(var i=0; i<arguments.length; i++) {
this._buf += arguments[i].toString();
}
return this;
}
StringBuilder.prototype["append"] = function() {
for(var i=0; i<arguments.length; i++) {
this._buf += arguments[i].toString();
}
return this;
}
StringBuilder.prototype["toString"] = function() {
return this._buf.toString();
}

Просмотреть файл

@ -71,6 +71,7 @@ var util = (function () {
return {
format: format,
inherits: inherits,
print: console.log.bind(console),
debug: console.info.bind(console),
error: console.error.bind(console),
info: console.info.bind(console),