Allow env-js to be require'd.
This fixes a bug with the usage of `require` in env-js, such that env-js now uses proper relative paths rather than unshifting "." onto `require.paths`. The behavior of `require` is documented here: <http://nodejs.org/docs/v0.4.2/api/modules.html#all_Together...> With this change in place, it's now possible to use env-js simply by require'ing it from a script, rather than having env-js host and eval. Also, this commit changes the initialization of env-js, such that the initial document is immediately available when the env-js module is loaded. And, the event loop is disabled so that env-js shuts down cleanly. This probably breaks some parts of env-js, but it makes it much easier to use so I'm going to play with it a bit.
This commit is contained in:
Родитель
3568ecac2c
Коммит
7df63b3cfe
|
@ -0,0 +1,39 @@
|
|||
#!/bin/sh
|
||||
# Usage: envjs <platorm> file.js [file2.js ...]
|
||||
###########################################################################
|
||||
ENVJS_PLATFORM='node'
|
||||
|
||||
# first arguments ($1)
|
||||
# may be a platform or is a file and the default platorm is used
|
||||
if [ -n "$1" ]; then
|
||||
if [ -n "$1" ]; then ENVJS_PLATFORM="$1"; shift; fi
|
||||
fi
|
||||
|
||||
# Run envjs with the given platform
|
||||
###########################################################################
|
||||
case "$ENVJS_PLATFORM" in
|
||||
|
||||
"node")
|
||||
node envjs/node.js $@
|
||||
;;
|
||||
"rhino")
|
||||
java -Xmx512M -jar rhino/js.jar -opt -1 envjs/rhino.js $@
|
||||
;;
|
||||
"rhino-debug")
|
||||
java -cp rhino/js.jar org.mozilla.javascript.tools.debugger.Main envjs/rhino.js $@
|
||||
;;
|
||||
"spyd")
|
||||
python envjs/spydermonkey.py envjs/spydermonkey.js $@
|
||||
;;
|
||||
"rubyracer")
|
||||
ruby -rrubygems envjs/rubyracer.rb envjs/rubyracer.js $@
|
||||
;;
|
||||
"johnson")
|
||||
ruby -rrubygems envjs/johnson.rb envjs/johnson.js $@
|
||||
;;
|
||||
*)
|
||||
# platform default means $1 was actually a file
|
||||
node envjs/node.js $ENVJS_PLATFORM $@
|
||||
;;
|
||||
esac
|
||||
|
|
@ -4,10 +4,10 @@
|
|||
* @Console
|
||||
*/
|
||||
|
||||
var Envjs = Envjs || require('envjs/platform/core').Envjs;
|
||||
var Envjs = Envjs || require('./platform/core').Envjs;
|
||||
|
||||
/*
|
||||
* Envjs console.1.3.pre03
|
||||
* Envjs console.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
* By John Resig <http://ejohn.org/> and the Envjs Team
|
||||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
|
@ -28,7 +28,7 @@ var Envjs = Envjs || require('envjs/platform/core').Envjs;
|
|||
try{
|
||||
console.log();
|
||||
}catch(e){
|
||||
|
||||
|
||||
|
||||
function escapeHTML(value)
|
||||
{
|
||||
|
|
|
@ -18,9 +18,9 @@ var CSS2Properties,
|
|||
|
||||
*/
|
||||
|
||||
var Envjs = Envjs || require('envjs/platform/core').Envjs,
|
||||
Document = require('envjs/dom').Document,
|
||||
HTMLElement = require('envjs/html').HTMLElement;
|
||||
var Envjs = Envjs || require('./platform/core').Envjs,
|
||||
Document = require('./dom').Document,
|
||||
HTMLElement = require('./html').HTMLElement;
|
||||
/*
|
||||
* Envjs css.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
|
|
|
@ -41,8 +41,8 @@ var Attr,
|
|||
|
||||
*/
|
||||
|
||||
var Envjs = Envjs || require('envjs/platform/core').Envjs,
|
||||
After = After || require('envjs/platform/core').After;
|
||||
var Envjs = Envjs || require('./platform/core').Envjs,
|
||||
After = After || require('./platform/core').After;
|
||||
|
||||
/*
|
||||
* Envjs dom.1.3.pre03
|
||||
|
|
|
@ -20,9 +20,9 @@ var Event,
|
|||
|
||||
*/
|
||||
|
||||
var Envjs = Envjs || require('envjs/platform/core').Envjs,
|
||||
After = After || require('envjs/platform/core').After,
|
||||
Document = Document || require('envjs/dom').Document;
|
||||
var Envjs = Envjs || require('./platform/core').Envjs,
|
||||
After = After || require('./platform/core').After,
|
||||
Document = Document || require('./dom').Document;
|
||||
/*
|
||||
* Envjs event.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
|
|
|
@ -68,13 +68,13 @@
|
|||
__loadLink__;
|
||||
*/
|
||||
|
||||
var Envjs = Envjs || require('envjs/platform/core').Envjs,
|
||||
After = After || require('envjs/platform/core').After,
|
||||
Document = Document || require('envjs/dom').Document,
|
||||
Element = Element || require('envjs/dom').Element,
|
||||
NodeList = NodeList || require('envjs/dom').NodeList,
|
||||
Node = Node || require('envjs/dom').Node,
|
||||
Event = Event || require('envjs/event').Event;
|
||||
var Envjs = Envjs || require('./platform/core').Envjs,
|
||||
After = After || require('./platform/core').After,
|
||||
Document = Document || require('./dom').Document,
|
||||
Element = Element || require('./dom').Element,
|
||||
NodeList = NodeList || require('./dom').NodeList,
|
||||
Node = Node || require('./dom').Node,
|
||||
Event = Event || require('./event').Event;
|
||||
|
||||
/*
|
||||
* Envjs html.1.3.pre03
|
||||
|
|
|
@ -62,5 +62,5 @@ var require = (function() {
|
|||
return require;
|
||||
})();
|
||||
|
||||
require('envjs/platform/johnson');
|
||||
require('envjs/window');
|
||||
require('./platform/johnson');
|
||||
require('./window');
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require.paths.unshift('.');
|
||||
require('envjs/platform/node');
|
||||
require('envjs/window');
|
||||
require('./platform/node');
|
||||
Envjs.eventLoop = function() {}; // disabled for clean shutdown
|
||||
|
||||
require('./window');
|
||||
new Window(__this__); // initialize a blank window
|
||||
|
|
|
@ -9,19 +9,19 @@
|
|||
*
|
||||
*/
|
||||
|
||||
var Envjs = Envjs || require('envjs/platform/core').Envjs,
|
||||
After = After || require('envjs/platform/core').After,
|
||||
DOMImplementation = DOMImplementation || require('envjs/dom').DOMImplementation,
|
||||
Document = Document || require('envjs/dom').Document,
|
||||
Element = Element || require('envjs/dom').Element,
|
||||
NodeList = NodeList || require('envjs/dom').NodeList,
|
||||
Node = Node || require('envjs/dom').Node,
|
||||
HTMLDocument = HTMLDocument || require('envjs/html').HTMLDocument,
|
||||
HTMLElement = HTMLElement || require('envjs/html').HTMLElement,
|
||||
setTimeout = setTimeout || require('envjs/timer').setTimeout,
|
||||
clearTimeout = clearTimeout || require('envjs/timer').clearTimeout,
|
||||
setInterval = setInterval || require('envjs/timer').setInterval,
|
||||
clearInterval = clearInterval || require('envjs/timer').clearInterval;
|
||||
var Envjs = Envjs || require('./platform/core').Envjs,
|
||||
After = After || require('./platform/core').After,
|
||||
DOMImplementation = DOMImplementation || require('./dom').DOMImplementation,
|
||||
Document = Document || require('./dom').Document,
|
||||
Element = Element || require('./dom').Element,
|
||||
NodeList = NodeList || require('./dom').NodeList,
|
||||
Node = Node || require('./dom').Node,
|
||||
HTMLDocument = HTMLDocument || require('./html').HTMLDocument,
|
||||
HTMLElement = HTMLElement || require('./html').HTMLElement,
|
||||
setTimeout = setTimeout || require('./timer').setTimeout,
|
||||
clearTimeout = clearTimeout || require('./timer').clearTimeout,
|
||||
setInterval = setInterval || require('./timer').setInterval,
|
||||
clearInterval = clearInterval || require('./timer').clearInterval;
|
||||
/*
|
||||
* Envjs parser.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
|
|
|
@ -43,7 +43,7 @@ var log = {
|
|||
};
|
||||
|
||||
if (typeof console == "undefined") {
|
||||
console = require('envjs/console').console;
|
||||
console = require('./console').console;
|
||||
}
|
||||
|
||||
//eg "Mozilla"
|
||||
|
@ -980,7 +980,7 @@ Envjs.emit = function(event /*, arg1, arg2, etc*/ ){
|
|||
eventQueue.push({event:event, args:arguments});
|
||||
};
|
||||
|
||||
setTimeout = require('envjs/timer').setTimeout;
|
||||
setTimeout = require('./../timer').setTimeout;
|
||||
|
||||
var $warming = 10;
|
||||
|
||||
|
@ -1375,7 +1375,7 @@ Envjs.exchangeHTMLDocument = function(doc, text, url) {
|
|||
frame = doc.__ownerFrame__,
|
||||
i;
|
||||
try {
|
||||
HTMLParser = HTMLParser || require('envjs/parser').HTMLParser;
|
||||
HTMLParser = HTMLParser || require('./../parser').HTMLParser;
|
||||
//do some cleanup so we can reuse the document
|
||||
doc.baseURI = url;
|
||||
log.debug('reseting document indexes');
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
var __context__ = __this__;
|
||||
|
||||
var Envjs = Envjs ||
|
||||
require('envjs/platform/core').Envjs;
|
||||
var Envjs = Envjs ||
|
||||
require('./core').Envjs;
|
||||
require('local_settings');
|
||||
|
||||
Envjs.platform = "Johnson SpiderMonkey";
|
||||
|
@ -13,7 +13,7 @@ Envjs.argv = Ruby.ARGV;
|
|||
Envjs.exit = function(){ Ruby['exit!'](); };
|
||||
|
||||
/*
|
||||
* Envjs johnson-env.1.3.pre03
|
||||
* Envjs johnson-env.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
* By John Resig <http://ejohn.org/> and the Envjs Team
|
||||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
|
@ -41,7 +41,7 @@ function __extend__(a,b) {
|
|||
a[i] = b[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ Envjs.repl = function(){
|
|||
console.log('Envjs REPL Not Available');
|
||||
};
|
||||
(function(){
|
||||
|
||||
|
||||
var log = Envjs.logger('Envjs.Platform.Johnson');
|
||||
|
||||
Envjs.eval = function(context, source, name){
|
||||
|
@ -84,12 +84,12 @@ Envjs.eval = function(context, source, name){
|
|||
/**
|
||||
* synchronizes thread modifications
|
||||
* @param {Function} fn
|
||||
*/
|
||||
*/
|
||||
var lock = new Ruby.Mutex();
|
||||
|
||||
//NOTES:
|
||||
//context['sync'] = lambda{|wrapper|
|
||||
// Proc.new{|*args|lock.synchronize {wrapper['fn'].call(*args)}}
|
||||
//context['sync'] = lambda{|wrapper|
|
||||
// Proc.new{|*args|lock.synchronize {wrapper['fn'].call(*args)}}
|
||||
//}
|
||||
//context['sync'] = lambda{|fn| Proc.new{|*args| fn.call(*args) }}
|
||||
Envjs.sync = function(fn){
|
||||
|
@ -116,7 +116,7 @@ Envjs.sleep = function(milliseconds){
|
|||
return Ruby.sleep(1.0*milliseconds/1000.0);
|
||||
};
|
||||
(function(){
|
||||
|
||||
|
||||
var log = Envjs.logger('Envjs.Platform.Johnson');
|
||||
|
||||
//Since we're running in spydermonkey I guess we can safely assume
|
||||
|
@ -151,7 +151,7 @@ Envjs.proxy = function(scope, parent) {
|
|||
};
|
||||
|
||||
})();(function(){
|
||||
|
||||
|
||||
var log = Envjs.logger('Envjs.XMLHttpRequest.Johnson');
|
||||
|
||||
/**
|
||||
|
@ -207,7 +207,7 @@ Envjs.readFromFile = function( url ){
|
|||
data = file.read();
|
||||
return data;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Used to delete a local file
|
||||
|
@ -236,14 +236,14 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
contentEncoding,
|
||||
responseXML,
|
||||
i;
|
||||
|
||||
|
||||
if ( /^file\:/.test(url) ) {
|
||||
//console.log('establishing file connection');
|
||||
Envjs.localXHR(url, xhr, connection, data);
|
||||
} else {
|
||||
log.debug('establishing http connection %s', xhr.url);
|
||||
try{
|
||||
|
||||
|
||||
connection = Ruby.Net.HTTP.start(
|
||||
urlparts.hostname,
|
||||
Number(urlparts.port||80)
|
||||
|
@ -252,7 +252,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
|
||||
path = urlparts.path+(urlparts.query?'?'+urlparts.query:'');
|
||||
switch( xhr.method.toUpperCase() ){
|
||||
case "GET":
|
||||
case "GET":
|
||||
request = new Ruby.Net.HTTP.Get(path);break;
|
||||
case "PUT":
|
||||
request = new Ruby.Net.HTTP.Put(path);break;
|
||||
|
@ -270,7 +270,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
//TODO: add gzip support
|
||||
//connection.putheader("Accept-Encoding", 'gzip');
|
||||
//connection.endheaders();
|
||||
|
||||
|
||||
//write data to output stream if required
|
||||
//TODO: if they have set the request header for a chunked
|
||||
//request body, implement a chunked output stream
|
||||
|
@ -295,7 +295,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
|
||||
if(connection){
|
||||
[response, headers] = HTTPConnection.go(connection, request, xhr.headers, null);
|
||||
|
||||
|
||||
try{
|
||||
// Stick the response headers into responseHeaders
|
||||
var keys = headers.keys();
|
||||
|
@ -314,7 +314,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
log.info('%s %s %s %s', xhr.method, xhr.status, xhr.url, xhr.statusText);
|
||||
contentEncoding = xhr.getResponseHeader('content-encoding') || "utf-8";
|
||||
responseXML = null;
|
||||
|
||||
|
||||
try{
|
||||
//console.log('contentEncoding %s', contentEncoding);
|
||||
if( contentEncoding.toLowerCase() == "gzip" ||
|
||||
|
@ -339,7 +339,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(responseHandler){
|
||||
log.debug('calling ajax response handler');
|
||||
if(!xhr.async){
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
var __context__ = __this__ = global;
|
||||
|
||||
var Envjs = Envjs ||
|
||||
require('envjs/platform/core').Envjs;
|
||||
require('local_settings');
|
||||
var Envjs = Envjs ||
|
||||
require('./core').Envjs;
|
||||
require('./../../local_settings');
|
||||
|
||||
Envjs.platform = "Node";
|
||||
Envjs.revision = process.version;
|
||||
|
@ -28,7 +28,7 @@ Envjs.exit = function(){
|
|||
|
||||
|
||||
/*
|
||||
* Envjs node-env.1.3.pre03
|
||||
* Envjs node-env.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
* By John Resig <http://ejohn.org/> and the Envjs Team
|
||||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
|
@ -56,7 +56,7 @@ function __extend__(a,b) {
|
|||
a[i] = b[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,7 @@ var Script = process.binding('evals').Script;
|
|||
|
||||
Envjs.eval = function(context, source, name, warming){
|
||||
if(context === global){
|
||||
return warming ?
|
||||
return warming ?
|
||||
eval(source) :
|
||||
Script.runInThisContext(source, name);
|
||||
}else{
|
||||
|
@ -104,7 +104,7 @@ var $tick = function(){
|
|||
$tick();
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Envjs.eventLoop = function(){
|
||||
//console.log('event loop');
|
||||
$tick();
|
||||
|
@ -213,7 +213,7 @@ Envjs.readFromFile = function( url ){
|
|||
url = url.substring(7,url.length);
|
||||
return filesystem.readFileSync(url, 'utf8');
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Used to delete a local file
|
||||
|
@ -242,15 +242,15 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
urlparts = Envjs.urlsplit(url),
|
||||
i;
|
||||
|
||||
|
||||
|
||||
if ( /^file\:/.test(url) ) {
|
||||
Envjs.localXHR(url, xhr, connection, data);
|
||||
} else {
|
||||
//console.log('connecting to %s \n\t port(%s) host(%s) path(%s) query(%s)',
|
||||
//console.log('connecting to %s \n\t port(%s) host(%s) path(%s) query(%s)',
|
||||
// url, urlparts.port, urlparts.hostname, urlparts.path, urlparts.query);
|
||||
connection = http.createClient(urlparts.port||'80', urlparts.hostname);
|
||||
request = connection.request(
|
||||
xhr.method,
|
||||
xhr.method,
|
||||
urlparts.path+(urlparts.query?"?"+urlparts.query:''),
|
||||
__extend__(xhr.headers,{
|
||||
"Host": urlparts.hostname,
|
||||
|
@ -312,7 +312,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
//write data to output stream if required
|
||||
//TODO: if they have set the request header for a chunked
|
||||
//request body, implement a chunked output stream
|
||||
|
||||
|
||||
//console.log('sending request %s\n', xhr.url);
|
||||
if(data){
|
||||
if(data instanceof Document){
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
*/
|
||||
|
||||
var Envjs = Envjs ||
|
||||
require('envjs/platform/core').Envjs;
|
||||
var Envjs = Envjs ||
|
||||
require('./core').Envjs;
|
||||
require('local_settings');
|
||||
|
||||
var __context__ = Packages.org.mozilla.javascript.Context.getCurrentContext();
|
||||
|
@ -25,7 +25,7 @@ Envjs.exit = function(){
|
|||
};
|
||||
|
||||
/*
|
||||
* Envjs rhino-env.1.3.pre03
|
||||
* Envjs rhino-env.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
* By John Resig <http://ejohn.org/> and the Envjs Team
|
||||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
|
@ -53,7 +53,7 @@ function __extend__(a,b) {
|
|||
a[i] = b[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
|
@ -63,14 +63,14 @@ function __extend__(a,b) {
|
|||
* @param {Object} message
|
||||
*/
|
||||
(function(){
|
||||
|
||||
|
||||
Envjs.log = print;
|
||||
|
||||
Envjs.lineSource = function(e){
|
||||
return e&&e.rhinoException?e.rhinoException.lineSource():"(line ?)";
|
||||
};
|
||||
|
||||
var $in, log;
|
||||
var $in, log;
|
||||
Envjs.readConsole = function(){
|
||||
log = log||Envjs.logger('Envjs.Rhino');
|
||||
$in = $in||new java.io.BufferedReader(
|
||||
|
@ -79,7 +79,7 @@ Envjs.readConsole = function(){
|
|||
return $in.readLine()+'';
|
||||
};
|
||||
Envjs.prompt = function(){
|
||||
java.lang.System.out.print(Envjs.CURSOR+' ');
|
||||
java.lang.System.out.print(Envjs.CURSOR+' ');
|
||||
java.lang.System.out.flush();
|
||||
};
|
||||
|
||||
|
@ -124,12 +124,12 @@ Envjs.eval = function(context, source, name){
|
|||
// Flush and close the stream.
|
||||
ostream.flush();
|
||||
ostream.close();
|
||||
|
||||
|
||||
var out = new java.io.FileOutputStream(new java.io.File(new java.net.URI(url.toString())));
|
||||
try{
|
||||
out.write( ostream.toByteArray() );
|
||||
}catch(e){
|
||||
|
||||
|
||||
}finally{
|
||||
out.flush();
|
||||
out.close();
|
||||
|
@ -146,7 +146,7 @@ try{
|
|||
Envjs.sync = sync;
|
||||
Envjs.spawn = spawn;
|
||||
//print('sync and spawn are available');
|
||||
} catch(e){
|
||||
} catch(e){
|
||||
//print('sync and spawn are not available : ' + e);
|
||||
//sync unavailable on AppEngine
|
||||
Envjs.sync = function(fn){
|
||||
|
@ -249,9 +249,9 @@ Envjs.readFromFile = function( url ){
|
|||
url = Envjs.uri(url);
|
||||
//console.log("reading from url : %s", url);
|
||||
var fileReader = new java.io.FileReader(
|
||||
new java.io.File(
|
||||
new java.io.File(
|
||||
new java.net.URI( url )));
|
||||
|
||||
|
||||
var stringwriter = new java.io.StringWriter(),
|
||||
buffer = java.lang.reflect.Array.newInstance(java.lang.Character.TYPE, 1024),
|
||||
length;
|
||||
|
@ -263,7 +263,7 @@ Envjs.readFromFile = function( url ){
|
|||
stringwriter.close();
|
||||
return stringwriter.toString()+"";
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Used to delete a local file
|
||||
|
@ -293,8 +293,8 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
instream,
|
||||
responseXML,
|
||||
i;
|
||||
|
||||
|
||||
|
||||
|
||||
if ( /^file\:/.test(url) ) {
|
||||
Envjs.localXHR(url, xhr, connection, data);
|
||||
} else {
|
||||
|
@ -358,7 +358,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
contentEncoding = connection.getContentEncoding() || "utf-8";
|
||||
instream = null;
|
||||
responseXML = null;
|
||||
|
||||
|
||||
try{
|
||||
//console.log('contentEncoding %s', contentEncoding);
|
||||
if( contentEncoding.equalsIgnoreCase("gzip") ||
|
||||
|
@ -391,7 +391,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
|
||||
outstream.close();
|
||||
instream.close();
|
||||
|
||||
|
||||
if(binary){
|
||||
xhr.responseText = new java.lang.String(outstream.toByteArray(), 'UTF-8')+'';
|
||||
}else{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
var __context__ = __this__;
|
||||
|
||||
var Envjs = Envjs ||
|
||||
require('envjs/platform/core').Envjs;
|
||||
var Envjs = Envjs ||
|
||||
require('./core').Envjs;
|
||||
require('local_settings');
|
||||
|
||||
Envjs.platform = "V8 RubyRacer";
|
||||
|
@ -13,7 +13,7 @@ Envjs.argv = Ruby.ARGV;
|
|||
Envjs.exit = function(){ Ruby.Process['exit!'](); };
|
||||
|
||||
/*
|
||||
* Envjs rubyracer-env.1.3.pre03
|
||||
* Envjs rubyracer-env.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
* By John Resig <http://ejohn.org/> and the Envjs Team
|
||||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
|
@ -41,7 +41,7 @@ function __extend__(a,b) {
|
|||
a[i] = b[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
|
@ -73,7 +73,7 @@ Envjs.repl = function(){
|
|||
console.log('Envjs REPL Not Available');
|
||||
};
|
||||
(function(){
|
||||
|
||||
|
||||
var log = Envjs.logger('Envjs.Platform.RubyRacer');
|
||||
|
||||
Envjs.eval = function(context, source, name){
|
||||
|
@ -138,7 +138,7 @@ Envjs.proxy = function(scope, parent) {
|
|||
|
||||
};
|
||||
(function(){
|
||||
|
||||
|
||||
var log = Envjs.logger('Envjs.XMLHttpRequest.RubyRacer');
|
||||
|
||||
/**
|
||||
|
@ -194,7 +194,7 @@ Envjs.readFromFile = function( url ){
|
|||
data = file.read();
|
||||
return data;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Used to delete a local file
|
||||
|
@ -223,14 +223,14 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
contentEncoding,
|
||||
responseXML,
|
||||
i;
|
||||
|
||||
|
||||
if ( /^file\:/.test(url) ) {
|
||||
log.debug('establishing file connection');
|
||||
Envjs.localXHR(url, xhr, connection, data);
|
||||
} else {
|
||||
log.debug('establishing http native ruby connection %s', xhr.url);
|
||||
try{
|
||||
|
||||
|
||||
connection = HTTPConnection.connect(
|
||||
urlparts.hostname,
|
||||
Number(urlparts.port||80)
|
||||
|
@ -244,7 +244,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
//TODO: add gzip support
|
||||
//connection.putheader("Accept-Encoding", 'gzip');
|
||||
//connection.endheaders();
|
||||
|
||||
|
||||
//write data to output stream if required
|
||||
//TODO: if they have set the request header for a chunked
|
||||
//request body, implement a chunked output stream
|
||||
|
@ -290,7 +290,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
log.info('%s %s %s %s', xhr.method, xhr.status, xhr.url, xhr.statusText);
|
||||
contentEncoding = xhr.getResponseHeader('content-encoding') || "utf-8";
|
||||
responseXML = null;
|
||||
|
||||
|
||||
try{
|
||||
//console.log('contentEncoding %s', contentEncoding);
|
||||
if( contentEncoding.toLowerCase() == "gzip" ||
|
||||
|
@ -316,7 +316,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(responseHandler){
|
||||
log.debug('calling ajax response handler');
|
||||
if(!xhr.async){
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
var __context__ = __this__;
|
||||
|
||||
var Envjs = Envjs ||
|
||||
require('envjs/platform/core').Envjs;
|
||||
var Envjs = Envjs ||
|
||||
require('./core').Envjs;
|
||||
require('local_settings');
|
||||
|
||||
Envjs.platform = "SpyderMonkey";
|
||||
|
@ -14,12 +14,12 @@ for(var i in sys.argv){
|
|||
Envjs.argv.shift();
|
||||
Envjs.argv.shift();
|
||||
|
||||
Envjs.exit = function(){
|
||||
exit();
|
||||
Envjs.exit = function(){
|
||||
exit();
|
||||
};
|
||||
|
||||
/*
|
||||
* Envjs node-env.1.3.pre03
|
||||
* Envjs node-env.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
* By John Resig <http://ejohn.org/> and the Envjs Team
|
||||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
|
@ -47,7 +47,7 @@ function __extend__(a,b) {
|
|||
a[i] = b[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return a;
|
||||
}
|
||||
Envjs.log = print;
|
||||
|
@ -202,7 +202,7 @@ Envjs.readFromFile = function( url ){
|
|||
data = file.read();
|
||||
return data;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Used to delete a local file
|
||||
|
@ -233,19 +233,19 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
contentEncoding,
|
||||
responseXML,
|
||||
i;
|
||||
|
||||
|
||||
if ( /^file\:/.test(url) ) {
|
||||
log.debug('establishing platform file connection');
|
||||
Envjs.localXHR(url, xhr, connection, data);
|
||||
} else {
|
||||
log.debug('establishing python platform network connection');
|
||||
try{
|
||||
log.debug('connecting to %s \n\t port(%s) hostname(%s) path(%s) query(%s)',
|
||||
log.debug('connecting to %s \n\t port(%s) hostname(%s) path(%s) query(%s)',
|
||||
url, urlparts.port, urlparts.hostname, urlparts.path, urlparts.query);
|
||||
connection = httplib.HTTPConnection(urlparts.hostname, urlparts.port || 80);
|
||||
connection.connect();
|
||||
request = connection.putrequest(
|
||||
xhr.method,
|
||||
xhr.method,
|
||||
urlparts.path+(urlparts.query?'?'+urlparts.query:'')
|
||||
);
|
||||
|
||||
|
@ -257,7 +257,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
//TODO: add gzip support
|
||||
//connection.putheader("Accept-Encoding", 'gzip');
|
||||
connection.endheaders();
|
||||
|
||||
|
||||
//write data to output stream if required
|
||||
//TODO: if they have set the request header for a chunked
|
||||
//request body, implement a chunked output stream
|
||||
|
@ -304,7 +304,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
log.info('%s %s %s %s', xhr.method, xhr.status, xhr.url, xhr.statusText);
|
||||
contentEncoding = xhr.getResponseHeader('content-encoding') || "utf-8";
|
||||
responseXML = null;
|
||||
|
||||
|
||||
try{
|
||||
//console.log('contentEncoding %s', contentEncoding);
|
||||
if( contentEncoding.toLowerCase() == "gzip" ||
|
||||
|
@ -330,7 +330,7 @@ Envjs.connection = function(xhr, responseHandler, data){
|
|||
connection.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(responseHandler){
|
||||
log.debug('calling ajax response handler');
|
||||
if(!xhr.async){
|
||||
|
|
|
@ -87,5 +87,5 @@ var require = (function() {
|
|||
return require;
|
||||
}());
|
||||
var __argv__ = arguments;
|
||||
require('envjs/platform/rhino');
|
||||
require('envjs/window');
|
||||
require('./platform/rhino');
|
||||
require('./window');
|
||||
|
|
|
@ -68,5 +68,5 @@ var require = (function() {
|
|||
return require;
|
||||
})();
|
||||
var __argv__ = Ruby.ARGV;
|
||||
require('envjs/platform/rubyracer');
|
||||
require('envjs/window');
|
||||
require('./platform/rubyracer');
|
||||
require('./window');
|
||||
|
|
|
@ -60,5 +60,5 @@ var require = (function() {
|
|||
|
||||
return require;
|
||||
})();
|
||||
require('envjs/platform/spydermonkey');
|
||||
require('envjs/window');
|
||||
require('./platform/spydermonkey');
|
||||
require('./window');
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
/*
|
||||
* Envjs timer.1.3.pre03
|
||||
* Envjs timer.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
* By John Resig <http://ejohn.org/> and the Envjs Team
|
||||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
|
@ -14,31 +14,31 @@
|
|||
|
||||
|
||||
/*
|
||||
* Envjs timer.1.3.pre03
|
||||
* Envjs timer.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
* By John Resig <http://ejohn.org/> and the Envjs Team
|
||||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
*
|
||||
*
|
||||
* Parts of the implementation were originally written by:\
|
||||
* Steven Parkes
|
||||
*
|
||||
*
|
||||
* requires Envjs.wait, Envjs.sleep, Envjs.WAIT_INTERVAL
|
||||
|
||||
This module leaks the following global definitions.
|
||||
This module leaks the following global definitions.
|
||||
|
||||
var setTimeout,
|
||||
clearTimeout,
|
||||
setInterval,
|
||||
clearInterval;
|
||||
|
||||
*/
|
||||
*/
|
||||
|
||||
var Envjs = require('envjs/platform/core').Envjs;
|
||||
var Envjs = require('./platform/core').Envjs;
|
||||
/*
|
||||
* - timer.js
|
||||
*/
|
||||
(function(){
|
||||
|
||||
|
||||
var log = Envjs.logger();
|
||||
Envjs.once('tick', function(){
|
||||
log = Envjs.logger('Envjs.Timer').
|
||||
|
@ -59,7 +59,7 @@ exports.setTimeout = setTimeout = function(fn, time){
|
|||
* clearTimeout
|
||||
* @param {Object} id
|
||||
*/
|
||||
exports.clearTimeout = clearTimeout = function(id){
|
||||
exports.clearTimeout = clearTimeout = function(id){
|
||||
log.debug('clearTimeout %s', id);
|
||||
return Envjs.timers.removeTimerOrInterval(id, 'timeout');
|
||||
};
|
||||
|
@ -79,7 +79,7 @@ exports.setInterval = setInterval = function(fn, time){
|
|||
* @param {Object} id
|
||||
*/
|
||||
exports.clearInterval = clearInterval = function(id){
|
||||
log.debug('clearInterval %s', id);
|
||||
log.debug('clearInterval %s', id);
|
||||
return Envjs.timers.removeTimerOrInterval(id, 'interval');
|
||||
};
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
/*
|
||||
* Envjs window.1.3.pre03
|
||||
* Envjs window.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
* By John Resig <http://ejohn.org/> and the Envjs Team
|
||||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
|
||||
This module leaks the following global definitions.
|
||||
This module leaks the following global definitions.
|
||||
|
||||
var Window,
|
||||
Screen,
|
||||
|
@ -13,18 +13,18 @@ var Window,
|
|||
|
||||
*/
|
||||
|
||||
var Envjs = Envjs || require('envjs/platform/core').Envjs,
|
||||
DOMImplementation = DOMImplementation || require('envjs/dom').DOMImplementation,
|
||||
HTMLDocument = HTMLDocument || require('envjs/html').HTMLDocument,
|
||||
HTMLFrameElement = HTMLFrameElement || require('envjs/html').HTMLFrameElement,
|
||||
HTMLIFrameElement = HTMLIFrameElement || require('envjs/html').HTMLIFrameElement,
|
||||
HTMLParser = HTMLParser || require('envjs/parser').HTMLParser,
|
||||
Location = Location || require('envjs/xhr').Location,
|
||||
CSSRule = CSSRule || require('envjs/css').CSSRule;
|
||||
var Envjs = Envjs || require('./platform/core').Envjs,
|
||||
DOMImplementation = DOMImplementation || require('./dom').DOMImplementation,
|
||||
HTMLDocument = HTMLDocument || require('./html').HTMLDocument,
|
||||
HTMLFrameElement = HTMLFrameElement || require('./html').HTMLFrameElement,
|
||||
HTMLIFrameElement = HTMLIFrameElement || require('./html').HTMLIFrameElement,
|
||||
HTMLParser = HTMLParser || require('./parser').HTMLParser,
|
||||
Location = Location || require('./xhr').Location,
|
||||
CSSRule = CSSRule || require('./css').CSSRule;
|
||||
|
||||
|
||||
/*
|
||||
* Envjs window.1.3.pre03
|
||||
* Envjs window.1.3.pre03
|
||||
* Pure JavaScript Browser Environment
|
||||
* By John Resig <http://ejohn.org/> and the Envjs Team
|
||||
* Copyright 2008-2010 John Resig, under the MIT License
|
||||
|
@ -52,7 +52,7 @@ function __extend__(a,b) {
|
|||
a[i] = b[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ exports.History = History = function(owner) {
|
|||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}(/*History*/));
|
||||
|
@ -260,7 +260,7 @@ exports.Screen = Screen = function(__window__){
|
|||
$left = 0,
|
||||
$availTop = 0,
|
||||
$availLeft = 0;
|
||||
|
||||
|
||||
log.debug('extending window with screen properties');
|
||||
__extend__( __window__, {
|
||||
moveBy : function(dx,dy){
|
||||
|
@ -289,7 +289,7 @@ exports.Screen = Screen = function(__window__){
|
|||
//TODO - modify $locals to reflect change
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
log.debug('creating screen');
|
||||
return {
|
||||
get top(){
|
||||
|
@ -585,14 +585,14 @@ exports.Window = Window = function(scope, parent, opener){
|
|||
// a read-only reference to the Location object. the location object does
|
||||
// expose read/write properties
|
||||
var $location = new Location('about:blank', $document, $history);
|
||||
|
||||
|
||||
// The name of window/frame. Set directly, when using open(), or in frameset.
|
||||
// May be used when specifying the target attribute of links
|
||||
var $name = null;
|
||||
|
||||
// a read-only reference to the Navigator object
|
||||
var $navigator = new Navigator();
|
||||
|
||||
|
||||
// a read/write reference to the Window object that contained the script
|
||||
// that called open() to open this browser window. This property is valid
|
||||
// only for top-level window objects.
|
||||
|
@ -629,7 +629,7 @@ exports.Window = Window = function(scope, parent, opener){
|
|||
// a read/write string that specifies the current status line.
|
||||
var $status = '';
|
||||
__extend__(scope, EventTarget.prototype);
|
||||
|
||||
|
||||
return __extend__( scope, {
|
||||
get closed(){
|
||||
return $closed;
|
||||
|
@ -801,7 +801,7 @@ exports.Window = Window = function(scope, parent, opener){
|
|||
i;
|
||||
for(i=0;i<frames.length;i++){
|
||||
Envjs.unloadFrame(frames[i]);
|
||||
}
|
||||
}
|
||||
for(i=0;i<iframes.length;i++){
|
||||
Envjs.unloadFrame(iframes[i]);
|
||||
}
|
||||
|
|
|
@ -31,8 +31,8 @@ var Location,
|
|||
|
||||
*/
|
||||
|
||||
var Envjs = Envjs || require('envjs/platform/core').Envjs,
|
||||
Document = Document || require('envjs/dom').Document;
|
||||
var Envjs = Envjs || require('./platform/core').Envjs,
|
||||
Document = Document || require('./dom').Document;
|
||||
|
||||
/**
|
||||
* @author john resig
|
||||
|
|
Загрузка…
Ссылка в новой задаче