private Func<LevelObjectInfo, SonicLevel, Sonic.Sonic, SensorM, LevelObjectPiece, bool> evalMe(string js)
{
if (cacheLast[js] == null)
cacheLast[js] = null;
if (cacheLast[js] != this.Me<JsDictionary<string, string>>()[js])
cacheCompiled[js] = null;
cacheLast[js] = this.Me<JsDictionary<string, string>>()[js];
if (cacheCompiled[js] == null) {
cacheCompiled[js] =
Script.Reinterpret<Func<LevelObjectInfo, SonicLevel, Sonic.Sonic, SensorM, LevelObjectPiece, bool>>(
Script.Eval("(function(object,level,sonic,sensor,piece){" + this.Me<JsDictionary<string, string>>()[js] + "});"));
}
return cacheCompiled[js];
}
}