Skip to content

Commit

Permalink
lint sandbox
Browse files Browse the repository at this point in the history
  • Loading branch information
Berkeley Martinez authored and Berkeley Martinez committed Aug 27, 2015
1 parent ce364b4 commit 45c0c71
Showing 1 changed file with 52 additions and 50 deletions.
102 changes: 52 additions & 50 deletions client/sandbox.js
Original file line number Diff line number Diff line change
@@ -1,87 +1,89 @@
/* global jailed */
var printCallback;

// sends the input to the plugin for evaluation
var submit = function(code,callback) {
printCallback = callback;
// postpone the evaluation until the plugin is initialized
plugin.whenConnected(
function() {
if (requests == 0) {
startLoading();
}

requests++;
plugin.remote.run(code);
}
);
};
function submit(code, callback) {
printCallback = callback;

// postpone the evaluation until the plugin is initialized
plugin.whenConnected(function() {
if (requests === 0) {
startLoading();
}

requests++;
plugin.remote.run(code);
});
}

// puts the message on the terminal
var print = function(cls, msg) {
printCallback(cls,msg);
printCallback(cls, msg);
};


// will restart the plugin if it does not respond
var disconnectTimeout = null;
var startLoading = function() {
disconnectTimeout = setTimeout(disconnect, 3000);
disconnectTimeout = setTimeout(disconnect, 3000);
};

var endLoading = function() {
clearTimeout(disconnectTimeout);
clearTimeout(disconnectTimeout);
};

var disconnect = function() {
plugin.disconnect();
plugin.disconnect();
};


// interface provided to the plugin
var api = {
output: function(data) {
endLoading();
//print('input', data.input);
if (data.error) {
print('Error', data);
reset();
} else {
print(null, data);
reset();
}
output: function(data) {
endLoading();
// print('input', data.input);

if (data.error) {
print('Error', data);
reset();
} else {
print(null, data);
reset();
}
}
};


// obtaining absolute path of this script
var scripts = document.getElementsByTagName('script');
var path = scripts[scripts.length-1].src
.split('?')[0]
.split('/')
.slice(0, -1)
.join('/')+'/';


var path = scripts[scripts.length - 1].src
.split('?')[0]
.split('/')
.slice(0, -1)
.join('/') + '/';

var requests;

// (re)initializes the plugin
var reset = function() {
requests = 0;
plugin = new jailed.Plugin(path + 'plugin.js', api);
plugin.whenDisconnected( function() {
// give some time to handle the last responce
setTimeout( function() {
endLoading();
console.log("resetting on fatal plugin error");
if(challengeType === 0){
codeOutput.setValue("Sorry, your code is either too slow, has a fatal error, or contains an infinite loop.");
}
reset();
}, 10);
});
};

requests = 0;
plugin = new jailed.Plugin(path + 'plugin.js', api);
plugin.whenDisconnected( function() {
// give some time to handle the last responce
setTimeout( function() {
endLoading();
console.log('resetting on fatal plugin error');

if (challengeType === 0) {
codeOutput.setValue(
'Sorry, your code is either too slow, has a fatal error, ' +
'or contains an infinite loop.'
);
}
reset();
}, 10);
});
};

// initialize everything
var plugin = null;
Expand Down

0 comments on commit 45c0c71

Please sign in to comment.