Странная ошибка с именованными аргументами и неявным созданием структуры в вызове функции

Вот действительно странная ошибка, с которой я недавно столкнулся в CF9. Кто-нибудь знает, почему она возникает и делаю ли я что-то не так, или существует исправление. Посмотрите на следующий код. Мы берем строку, добавляем A, добавляем B, а затем пытаемся добавить C... но в результате получаем "ababc". Ожидаемый результат - "abc". Ошибка возникает только в том случае, если вы используете именованный аргумент И неявный struct в передаче аргумента И оператор &= в вызове функции. Если нет ни одного из этих 3 случаев, ошибка не возникает. Есть идеи, почему?

<cffunction name="test">
    <cfargument name="widget">

    <cfset var locals = StructNew()>

    <cfreturn arguments.widget.value>
</cffunction>

<cfset return = "">
<cfset return &= "a">
<cfset return &= "b">
<cfset return &= test(widget = { value = "c" })>
<cfoutput>#return#</cfoutput>
8
задан Nucleon 13 December 2011 в 00:24
поделиться