0 Replies Latest reply on Apr 24, 2008 4:18 PM by mike_morearty

    [svn] 1405: Major debugger checkin: A new expression evaluator.

    mike_morearty Level 1
      Revision: 1405
      Author: mmoreart@adobe.com
      Date: 2008-04-24 17:18:24 -0700 (Thu, 24 Apr 2008)

      Log Message:
      -----------
      Major debugger checkin: A new expression evaluator. Previously, the debugger used a somewhat crude parser that handled simple expressions correctly but failed on many more complex expressions. The new one handles many more cases that used to fail, including:

      - Most E4X expressions such as x.y, x.@y, x..y; the main thing that is not supported is E4X filters such as x.(@y==3)
      - Function calls, e.g. myvar.toString(), mystring.charAt(0) (this requires player 10)
      - References to global classes and variables, e.g. MyClass.myStatic, Math.max(a,b,c), String(myvar), etc. (this requires player 10)
      - Floating-point arithmetic, e.g. myFloat + 1.5
      - mystring.length
      - operator 'new', e.g. foo = new MyClass()
      - Regular expressions, e.g. mystring.match(/regex/ig)
      - Array literals, e.g. myarray = ["my", "literal", "array"]
      - Propertly tells the difference between undefined, null, NaN, Intinity, true, false
      - Ternary operator: a ? b : c
      - Almost all other operators e.g. ===, !==, and >>> (still doesn't support instanceof, in, is, as)

      Note, fdb.jar now depends on mxmlc.jar and asc.jar.

      Also in this checkin: Did some prep work for the day, someday in the future, when there is a 64-bit Flash player. Variable id's are now 64 bits (long) instead of 32 bits (int).

      Modified Paths:
      --------------
      flex/sdk/trunk/build.xml
      flex/sdk/trunk/development/eclipse/java/flex-compiler/.classpath
      flex/sdk/trunk/development/eclipse/java/flex-debugger/.classpath
      flex/sdk/trunk/modules/debugger/build.xml
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/Session.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/Value.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/Variable.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/VariableType.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/Watch.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/DManager.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/DMessage.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/DModule.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/DProtocol.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/DStackContext.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/DSwfInfo.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/DValue.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/DVariable.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/DWatch.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSession.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSessionManag er.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/events/DebugEvent.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/ASTBuilder.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/Context.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/IASTBuilder.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/ValueExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/expression_en.pr operties
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/expression_ja.pr operties
      flex/sdk/trunk/modules/debugger/src/java/flash/util/URLHelper.java
      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/DebugCLI.java
      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/ExpressionCache.java
      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/ExpressionContext.java
      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/Extensions.java
      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/LocationCollection.java
      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/StringIntArray.java
      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/VariableFacade.java
      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/WatchAction.java
      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/fdb_en.properties
      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/fdb_ja.properties
      flex/sdk/trunk/modules/swfutils/src/java/flash/swf/debug/DebugModule.java

      Added Paths:
      -----------
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/DebuggerEvaluato r.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/DebuggerExpressi on.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/ECMA.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/ExpressionEvalua torException.java

      Removed Paths:
      -------------
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/AddExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/AndExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/ArithmeticExp.ja va
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/AssignmentExp.ja va
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/BitwiseExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/BooleanExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/ConstantBooleanE xp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/ConstantExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/DivExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/DotExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/EqExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/GTEqExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/GTExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/IncompleteExpres sionException.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/IndirectionExp.j ava
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/InternalVariable Exp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/LShiftExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/LTEqExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/LTExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/LogicAndExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/LogicNotExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/LogicOrExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/ModExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/MultExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/NeqExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/NoChildException .java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/NonTerminalExp.j ava
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/NotExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/Operator.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/OrExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/RShiftExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/RelationalExp.ja va
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/SingleArgumentEx p.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/StringExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/SubExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/SubscriptExp.jav a
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/TerminalExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/UnknownOperation Exception.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/VariableExp.java
      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression/XorExp.java