-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompiler.js
More file actions
23 lines (23 loc) · 909 Bytes
/
compiler.js
File metadata and controls
23 lines (23 loc) · 909 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
exports.compile = function(block) {
var result = '' + block;
result = result.replace(/^(function[ ]*\([ ]*\)[ ]*\{[\n]*)/g, '');
result = result.replace(/([\n]*[ ]*}[ ]*$[\n]*)/g, '');
result = result.replace(/(^[ ]*|[\n]+[ ]*)/g, '');
// Such code is not compiled at the server side any more
// after some changes
// probably in the "request" library
// result = result.replace(/ /g, '%20');
// result = result.replace(/\+/g, '%2B');
// Compile the VKScript entity projection operator from something
// closer to JavaScript
result = result.replace(/.projection./g, '@.');
// Replace strict comparison to weak comparison
result = result.replace(/===/g, '==');
return result;
};
exports.compileCString = function(code) {
var result = code;
result = result.replace(/\\/g, '\\\\');
result = result.replace(/"/g, '\\"');
return result;
}