1
0
Fork 0

removed .hasOwnProperty() check that wasn't relevant. improves performance

This commit is contained in:
Jan Steemann 2012-05-21 09:10:03 +02:00
parent a108d9a38f
commit 0d0bf17c59
1 changed files with 6 additions and 20 deletions

View File

@ -659,22 +659,6 @@ static TRI_aql_codegen_register_t LookupSymbol (TRI_aql_codegen_js_t* const gene
return 0;
}
////////////////////////////////////////////////////////////////////////////////
/// @brief add code for the property check (if (!var.hasOwnProperty()) continue)
////////////////////////////////////////////////////////////////////////////////
static void ScopePropertyCheck (TRI_aql_codegen_js_t* const generator,
const TRI_aql_codegen_register_t listRegister,
const TRI_aql_codegen_register_t keyRegister) {
ScopeOutput(generator, "if (!");
ScopeOutputRegister(generator, listRegister);
ScopeOutput(generator, ".hasOwnProperty(");
ScopeOutputRegister(generator, keyRegister);
ScopeOutput(generator, ")) {\n");
ScopeOutput(generator, "continue;\n");
ScopeOutput(generator, "}\n");
}
////////////////////////////////////////////////////////////////////////////////
/// @brief start a for loop
////////////////////////////////////////////////////////////////////////////////
@ -723,12 +707,14 @@ static void StartFor (TRI_aql_codegen_js_t* const generator,
// for (var keyx in listx)
ScopeOutput(generator, "for (var ");
ScopeOutputRegister(generator, keyRegister);
ScopeOutput(generator, " in ");
ScopeOutput(generator, " = 0; ");
ScopeOutputRegister(generator, keyRegister);
ScopeOutput(generator, " < ");
ScopeOutputRegister(generator, listRegister);
ScopeOutput(generator, ") {\n");
ScopeOutput(generator, ".length; ++");
ScopeOutputRegister(generator, keyRegister);
ScopeOutput(generator, ") {\n");
ScopePropertyCheck(generator, listRegister, keyRegister);
// var rx = listx[keyx];
scope = CurrentScope(generator);
ScopeOutput(generator, "var ");