0 Replies Latest reply on Apr 24, 2008 4:45 PM by (GordonSmith)

    A new expression evaluator.

    Level 1
      When you evaluate an expression with a function call, any side effects
      will be permanent, right?

      - Gordon


      -----Original Message-----
      From: Mike Morearty [mailto:member@adobeforums.com]
      Sent: Thursday, April 24, 2008 5:18 PM
      To: flexsdk-commits@adobeforums.com
      Subject: [svn] 1405: Major debugger checkin: A new expression evaluator.

      A new discussion was started by Mike Morearty in

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

      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.ja
      va

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/Value.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/Variable.j
      ava

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/VariableTy
      pe.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/Watch.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/D
      Manager.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/D
      Message.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/D
      Module.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/D
      Protocol.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/D
      StackContext.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/D
      SwfInfo.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/D
      Value.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/D
      Variable.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/D
      Watch.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/P
      layerSession.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/P
      layerSessionManager.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/events/Deb
      ugEvent.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.properties

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression
      /expression_ja.properties
      flex/sdk/trunk/modules/debugger/src/java/flash/util/URLHelper.java

      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/DebugCL
      I.java

      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/Express
      ionCache.java

      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/Express
      ionContext.java

      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/Extensi
      ons.java

      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/Locatio
      nCollection.java

      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/StringI
      ntArray.java

      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/Variabl
      eFacade.java

      flex/sdk/trunk/modules/debugger/src/java/flex/tools/debugger/cli/WatchAc
      tion.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.jav
      a

      Added Paths:
      -----------

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression
      /DebuggerEvaluator.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression
      /DebuggerExpression.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
      /ExpressionEvaluatorException.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.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression
      /AssignmentExp.java

      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
      /ConstantBooleanExp.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
      /IncompleteExpressionException.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression
      /IndirectionExp.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression
      /InternalVariableExp.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.java

      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.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression
      /SingleArgumentExp.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.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression
      /TerminalExp.java

      flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/expression
      /UnknownOperationException.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




      ------------------------------------------------------
      View/reply at
      Replies by email are OK.
      Use the unsubscribe form at
      to
      cancel your email subscription.