Status/Resolution/Reason: Closed/Withdrawn/Duplicate
Reporter/Name(from Bugbase): Aaron Neff / Aaron Neff (Aaron Neff)
Created: 04/10/2014
Components: Core Runtime
Versions: 11.0
Failure Type:
Found In Build/Fixed In Build: PublicBeta /
Priority/Frequency: Major / Some users will encounter
Locale/System: English / Win All
Vote Count: 1
Duplicate ID: CF-3740276
invoke() overrides short-circuiting
Steps to reproduce:
<cfscript>
function bar() {return true;}
//Example 1: returns no error (good!)
if(structKeyExists(variables, "foo") and bar(variables.foo)) {writeOutput(variables.foo);}
//Example 2: returns exception: Element FOO is undefined in VARIABLES (bad!)
if(structKeyExists(variables, "foo") and invoke("", "bar", [variables.foo])) {writeOutput(variables.foo);}
</cfscript>
Since structKeyExists(variables, "foo") returns false, the invoke() should never run (but it does).
----------------------------- Additional Watson Details -----------------------------
Watson Bug ID: 3740241
External Customer Info:
External Company:
External Customer Name: itisdesign
External Customer Email:
Attachments:
Comments: