Skip to content

Commit

Permalink
new module added ("var", "function")
Browse files Browse the repository at this point in the history
  • Loading branch information
Owens94819 committed Jul 11, 2011
1 parent 467a647 commit e207825
Show file tree
Hide file tree
Showing 4 changed files with 139 additions and 2 deletions.
67 changes: 66 additions & 1 deletion modules/all.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
var KEYWORD = 0xC;
var FUNCTION = 0xD;
var FKEYWORD = 0xE;

var MKEYWORD = 0xF;

/** use-effect √ **/
__core__.createModule([
{
Expand Down Expand Up @@ -730,4 +731,68 @@
},
]);

/** var √ **/
__core__.createModule([
{
keyword: "var",
callback: function (param, currentProcess, core) {
var exec = currentProcess && currentProcess.eval || core.eval
param = __core__.parseParameter(param).parameter[0].trim();
param = param.split(/(^[a-zA-Z ]+\=)/);
param.shift()
if (param[0]) {
try {
exec("var " + param[0] + "(" + param[1] + ")")
} catch (err) {
console.error("var:", param.join(""), err + "");
}
}
param = void 0;
},
type: MKEYWORD,
},
]);

/** function √ **/
__core__.createModule([
{
keyword: "function",
callback: function (e, node, exec) {
var param = __core__.parseParameter(e).parameter[0];
try {

var name = "";
for (var i = 0; i < param.length; i++) {
if (param[i] === ",") {
break
}
name += param[i]
}

param = param.substring(i + 1)
name = exec(name)
param = exec("[" + param + "]")
var foo = window[name]

name = ""
if (typeof foo === "function") {
for (var i = 0; i < param.length; i++) {
name += "param[" + i + "]";
!(i + 1 === param.length) && (name += ", ")
}
name = eval("foo(exec, " + name + ")")
}
if (name) {
node.putChild(name)
}
name = void 0;
} catch (err) {
console.error("function:", e, err + "");
}
e = void 0;
param = void 0;
},
type: METHOD,
},
]);
})()
46 changes: 46 additions & 0 deletions modules/function.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
(function () {
var __core__ = XJSX.__XJSXCORE__();
var METHOD = 0xB;
/** function √ **/
__core__.createModule([
{
keyword: "function",
callback: function (e, node, exec) {
var param = __core__.parseParameter(e).parameter[0];
try {

var name = "";
for (var i = 0; i < param.length; i++) {
if (param[i]===",") {
break
}
name += param[i]
}

param = param.substring(i+1)
name=exec(name)
param = exec("["+param+"]")
var foo = window[name]

name=""
if (typeof foo === "function") {
for (var i = 0; i < param.length; i++) {
name+="param["+i+"]";
!(i+1===param.length)&&(name+=", ")
}
name = eval("foo(exec, "+name+")")
}
if (name) {
node.putChild(name)
}
name=void 0;
} catch (err) {
console.error("function:", e, err + "");
}
e = void 0;
param = void 0;
},
type: METHOD,
},
]);
})()
1 change: 0 additions & 1 deletion modules/print.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
(function() {
var __core__=XJSX.__XJSXCORE__();
var METHOD = 0xB;

/** print √ **/
__core__.createModule([
{
Expand Down
27 changes: 27 additions & 0 deletions modules/var.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
(function () {
var __core__ = XJSX.__XJSXCORE__();
var MKEYWORD = 0xF;
/** var √ **/
__core__.createModule([
{
keyword: "var",
callback: function (param, currentProcess, core) {
var exec = currentProcess && currentProcess.eval || core.eval
param = __core__.parseParameter(param).parameter[0].trim();
param = param.split(/(^[a-zA-Z ]+)\=/);
param.shift()
// console.log(param);
if (param[0]) {
try {
exec("var " + param[0] + "=(" + param[1] + ")")
// exec(exec(param[1]), param[0])
} catch (err) {
console.error("var:", param.join(""), err + "");
}
}
param= void 0;
},
type: MKEYWORD,
},
]);
})()

0 comments on commit e207825

Please sign in to comment.