Skip to content

Commit

Permalink
refactor and fix compile time evaluation of builtin ord
Browse files Browse the repository at this point in the history
  • Loading branch information
NotFound committed Nov 1, 2011
1 parent 86a56a8 commit 815aebf
Showing 1 changed file with 11 additions and 14 deletions.
25 changes: 11 additions & 14 deletions winxedst1.winxed
Expand Up @@ -1513,31 +1513,28 @@ function Builtin_invoke(e, owner, start, string result, args)
function builtineval_length(owner, start, args)
{
var arg = args[0].arg;
string s = arg.get_value();
string s = string_from_literal(arg);
return integerValue(owner, start, length(s));
}

function builtineval_bytelength(owner, start, args)
{
var arg = args[0].arg;
string s = arg.get_value();
string s = string_from_literal(arg);
return integerValue(owner, start, bytelength(s));
}

function builtineval_ord(owner, start, args)
{
int nargs = elements(args);
var arg = args[0].arg;
string s = arg.get_value();
return integerValue(owner, start, ord(s));
}

function builtineval_ord_n(owner, start, args)
{
var arg = args[0].arg;
string s = arg.get_value();
var argn = args[1].arg;
int n = argn.numval;
return integerValue(owner, start, ord(s, n));
string s = string_from_literal(arg);
int pos = 0;
if (nargs > 1) {
var argpos = args[1].arg;
pos = int_from_literal(argpos);
}
return integerValue(owner, start, ord(s, pos));
}

function builtineval_chr(owner, start, args)
Expand Down Expand Up @@ -1759,7 +1756,7 @@ trans_encoding %0, $S0, $I0
REGint, REGstring
));
builder.add(new BuiltinFunctionEval('ord',
builtineval_ord_n,
builtineval_ord,
'ord %0, %1, %2',
REGint, REGstring, REGint
));
Expand Down

0 comments on commit 815aebf

Please sign in to comment.