• Daniel Clifford's avatar
    [Torque]: add assert(), unreachable and debug statements · 9cd8995f
    Daniel Clifford authored
    - In debug builds, 'assert(<expr>)' evaluates and aborts execution
      if the provided Torque expression is false at runtime.
      assert(<expr>) supports the same set of expressions protocols
      as Toruqe's if statement, i.e. both bool values and BranchIf-
      style tests. Upon failure, the assertion prints the Torque
      source code of the failed expression, not the generated CSA
      code.
    - 'unreachable' calls CSA's Unreachable() and signals to Torque
      that code execution cannot continue (i.e. its statement
      returns the 'never' type). In debug builds, the line number
      and position of the statement are printed before breaking.
    - 'debug' calls CSA's DebugBreak(). In debug builds, the line
      number and position of the 'debug' are printed before breaking.
    
    Change-Id: I4efd052536bb402c097a0d5f7be56e154b5b3676
    Reviewed-on: https://chromium-review.googlesource.com/1042570
    Commit-Queue: Daniel Clifford <danno@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#52984}
    9cd8995f
ast.h 19.7 KB