aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jsifier.js5
-rw-r--r--src/library.js4
-rw-r--r--src/shell.html1
3 files changed, 7 insertions, 3 deletions
diff --git a/src/jsifier.js b/src/jsifier.js
index b54aace3..5ad1573b 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -921,13 +921,16 @@ function JSify(data, functionsOnly, givenFunctions) {
});
var ret = '';
var first = true;
+ var signedIdent = makeSignOp(item.ident, item.type, 're'); // we need to standardize for purpose of comparison
for (var targetLabel in targetLabels) {
if (!first) {
ret += 'else ';
} else {
first = false;
}
- ret += 'if (' + targetLabels[targetLabel].map(function(value) { return makeComparison(item.ident, value, item.type) }).join(' || ') + ') {\n';
+ ret += 'if (' + targetLabels[targetLabel].map(function(value) {
+ return makeComparison(signedIdent, makeSignOp(value, item.type, 're'), item.type)
+ }).join(' || ') + ') {\n';
ret += ' ' + getPhiSetsForLabel(phiSets, targetLabel) + makeBranch(targetLabel, item.currLabelId || null) + '\n';
ret += '}\n';
}
diff --git a/src/library.js b/src/library.js
index 74a8a0ac..86897f11 100644
--- a/src/library.js
+++ b/src/library.js
@@ -219,8 +219,8 @@ LibraryManager.library = {
// Creates a file record from existing data.
createDataFile: function(parent, name, data, canRead, canWrite) {
if (typeof data === 'string') {
- var dataArray = [];
- for (var i = 0; i < data.length; i++) dataArray.push(data.charCodeAt(i));
+ var dataArray = new Array(data.length);
+ for (var i = 0, len = data.length; i < len; ++i) dataArray[i] = data.charCodeAt(i);
data = dataArray;
}
var properties = {isDevice: false, contents: data};
diff --git a/src/shell.html b/src/shell.html
index a41086b9..2f34ace3 100644
--- a/src/shell.html
+++ b/src/shell.html
@@ -19,6 +19,7 @@
print: (function() {
var element = document.getElementById('output');
return function(text) {
+ text = text.replace(/&/g, "&amp;");
text = text.replace(/</g, "&lt;");
text = text.replace(/>/g, "&gt;");
text = text.replace('\n', '<br>', 'g');