DMDScript - Object contructors and assign from Function calls bugs
- Alan Knowles (39/39) Apr 27 2007 I was just testing DMD script with extjs (www.extjs.org).
I was just testing DMD script with extjs (www.extjs.org).
Two bugs came up:
var a = {
"=" : "a test",
123 : "a test"
}
= Support for raw strings and reals as object key values.
Fixing this is quite simple : inside parser.d / parseObjectLiteral
replace
if (token.value != TOKidentifier)
{ error(ERR_EXPECTED_IDENTIFIER);
break;
}
with something like:
switch (token.value) {
case TOKidentifier:
ident = token.ident;
break;
case TOKstring:
indent = Identifier.build(token.string);
break;
case TOKreal:
indent = Identifier.build(
std.string.toString(token.string));
break;
default:
break;
}
if (!ident) {
error(ERR_EXPECTED_IDENTIFIER);
break;
}
The other bug is that this syntax causes runtime errors.
var a = (function() { return { a: "test" } })();
- basically building an object based on the return value of an anonymous
function. (tends to be used to do private static variables in javascript)
I gave up trying to work out how to fix that one...
Regards
Alan
Apr 27 2007








Alan Knowles <alan akbkhome.com>