0 Replies Latest reply on Feb 5, 2009 5:22 PM by Peter Farland

    [svn] 4871: Fixing two unrelated i10 bugs but they both relate to type directed string parsing in MXML or FXG .

    Peter Farland Level 3
      Revision: 4871
      Author: pfarland@adobe.com
      Date: 2009-02-05 17:22:30 -0800 (Thu, 05 Feb 2009)

      Log Message:
      Fixing two unrelated i10 bugs but they both relate to type directed string parsing in MXML or FXG. The special casing of tokens in TextParser is overly complex - so these changes only try to address the bugs at hand without changing existing behaviors. This is likely a temporary fix until we get a chance to refactor this class.

      The first bug, SDK-18397 was broken by two-way data binding. TextParser.parse()'s usage of cleanupBindingEscapes() should not clean up at-function escapes (i.e. \@func) before we have checked for @func(). However, the other areas where escapes are cleaned up in general continue to do so - it's just now the fact that at-function escape cleanup is happening is made explicit.

      A complication to this fix was that there is other code in parseString() checking for values that specifically start with \@. However, if we've already cleaned up an escaped at-function, this would incorrectly strip a further leading slash off a case like \\@. I stopped this happening for TextParser.parse(), but this escaping and unescaping needs to be centralized in a future check-in.

      The second bug, SDK-17806, is a hack for the special case to stop [ ] brackets from being interpreted as Array short hand syntax for Array typed values when FXG is being compiled as if it were MXML-G. Exceptions to processing rules for FXG probably need refactored in a future check-in.

      QA: Yes, I ran binding and atembed mxunit tests but please add any test cases to avoid regressions in the future.
      Doc: No
      Checkintests: Pass
      mxunit tests: databinding, e4xbinding and atembed passed
      Reviewer: Paul, please take a second look.
      SDK-18397 - Compiler string handling not dealing with escaped characters correctly
      SDK-17806 - CDATA block handles {} and [] different in .fxg files

      Ticket Links:

      Modified Paths:
      flex/sdk/branches/i10/modules/compiler/src/java/flex2/compiler/mxml/builder/AbstractBuild er.java
      flex/sdk/branches/i10/modules/compiler/src/java/flex2/compiler/mxml/builder/XMLBuilder.ja va
      flex/sdk/branches/i10/modules/compiler/src/java/flex2/compiler/mxml/builder/XMLListBuilde r.java