tracker issue : CF-3740241

select a category, or use search below
(searches all categories and all time range)
Title:

[ANeff] Bug for: invoke() overrides short-circuiting

| View in Tracker

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:

Related thread: http://prerelease.adobe.com/r/?c691aea7c66a48f5bfafde5ea13b23a5
Comment by External U.
12715 | April 10, 2014 02:59:59 AM GMT
Bloody hell: how can the usage of a specific function break how boolean expressions are executed?! -- Adam
Vote by External U.
12717 | April 10, 2014 03:20:20 AM GMT
I'm sorry: I misunderstood the issue. It is actually the implicit struct and array that overrides short-circuiting. I've created the correct ticket here: CF-3740276 I suppose this ticket CF-3740241 can be closed as a duplicate of CF-3740276. Thanks, -Aaron
Comment by External U.
12716 | April 10, 2014 03:42:53 AM GMT