escape JIT-compiled inputs

snap8
Jens Mönig 2022-02-25 00:56:36 +01:00
rodzic 1b8be7ba4b
commit b9108d1ff8
5 zmienionych plików z 59 dodań i 9 usunięć

Wyświetl plik

@ -8,6 +8,12 @@
* **Documentation Updates:**
* **Translation Updates:**
## 7.2.3:
* **Notable Fix:**
* escape JIT-compiled inputs
### 2022-02-25
* threads: escape JIT-compiled inputs
## 7.2.2:
* **Notable Changes:**

Wyświetl plik

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Snap! 7.2.2 - Build Your Own Blocks</title>
<title>Snap! 7.2.3 - Build Your Own Blocks</title>
<link rel="icon" href="src/favicon.ico" type="image/x-icon">
<link rel="manifest" href="manifest.json">
<link rel="apple-touch-icon" href="img/snap-icon-152.png">
@ -17,10 +17,10 @@
<script src="src/symbols.js?version=2021-03-03"></script>
<script src="src/widgets.js?version=2021-17-09"></script>
<script src="src/blocks.js?version=2022-02-22"></script>
<script src="src/threads.js?version=2022-02-22"></script>
<script src="src/threads.js?version=2022-02-25"></script>
<script src="src/objects.js?version=2022-02-22"></script>
<script src="src/scenes.js?version=2021-11-24"></script>
<script src="src/gui.js?version=2022-02-22"></script>
<script src="src/gui.js?version=2022-02-25"></script>
<script src="src/paint.js?version=2021-07-05"></script>
<script src="src/lists.js?version=2022-02-07"></script>
<script src="src/byob.js?version=2022-02-17"></script>

Wyświetl plik

@ -86,7 +86,7 @@ BlockVisibilityDialogMorph, ThreadManager*/
// Global stuff ////////////////////////////////////////////////////////
modules.gui = '2022-February-22';
modules.gui = '2022-February-25';
// Declarations
@ -4775,7 +4775,7 @@ IDE_Morph.prototype.aboutSnap = function () {
module, btn1, btn2, btn3, btn4, licenseBtn, translatorsBtn,
world = this.world();
aboutTxt = 'Snap! 7.2.2\nBuild Your Own Blocks\n\n'
aboutTxt = 'Snap! 7.2.3\nBuild Your Own Blocks\n\n'
+ 'Copyright \u24B8 2008-2022 Jens M\u00F6nig and '
+ 'Brian Harvey\n'
+ 'jens@moenig.org, bh@cs.berkeley.edu\n\n'

Wyświetl plik

@ -64,7 +64,7 @@ SnapExtensions, AlignmentMorph, TextMorph, Cloud, HatBlockMorph*/
/*jshint esversion: 6*/
modules.threads = '2022-February-22';
modules.threads = '2022-February-25';
var ThreadManager;
var Process;
@ -7683,8 +7683,8 @@ JSCompiler.prototype.compileInput = function (inp) {
case 'Boolean':
return '' + value;
case 'text':
// enclose in double quotes
return '"' + value + '"';
// escape and enclose in double quotes
return '"' + this.escape(value) + '"';
case 'list':
return 'new List([' + this.compileInputs(value) + '])';
default:
@ -7717,3 +7717,47 @@ JSCompiler.prototype.compileInput = function (inp) {
);
}
};
JSCompiler.prototype.escape = function (string) {
var len = string.length,
result = '',
char,
esc,
i;
for (i = 0; i < len; i += 1) {
char = string[i];
switch (char) {
case '\\':
esc = '\\\\';
break;
case '\"':
esc = '\\"';
break;
case "\'":
esc = "\\'";
break;
case '\b':
esc = '\\b';
break;
case '\n':
esc = '\\n';
break;
case '\f':
esc = '\\f';
break;
case '\r':
esc = '\\r';
break;
case '\t':
esc = '\\t';
break;
case '\v':
esc = '\\v';
break;
default:
esc = char;
}
result += esc;
}
return result;
};

2
sw.js
Wyświetl plik

@ -1,4 +1,4 @@
var snapVersion = '7.2.2',
var snapVersion = '7.2.3',
cacheName = 'snap-pwa',
filesToCache = [
'snap.html',