Sample code for 30+ languages & platforms
DataFlex

Eval JavaScript Returning Int

See more JavaScript Examples

Demonstrates getting the completion value of a JavaScript that returns an integer.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Variant vSbScript
    Handle hoSbScript
    Handle hoJs
    Variant vResult
    Handle hoResult
    String sTemp1

    Move False To iSuccess

    // This example demonstrates getting the completion value of a script,
    // where the last evaluated expression is an integer.

    // The Javascript run in this example is shown below.

    // Load the JavaScript from a file.
    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbScript
    If (Not(IsComObjectCreated(hoSbScript))) Begin
        Send CreateComObject of hoSbScript
    End
    Get ComLoadFile Of hoSbScript "js_eval_return_int.js" "utf-8" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoSbScript To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatJs)) To hoJs
    If (Not(IsComObjectCreated(hoJs))) Begin
        Send CreateComObject of hoJs
    End
    Get Create (RefClass(cComChilkatJsonObject)) To hoResult
    If (Not(IsComObjectCreated(hoResult))) Begin
        Send CreateComObject of hoResult
    End

    // Run the JavaScript
    // Eval returns the completion value of the script. This is generally the value of the last evaluated expression.
    // In this case, the last evaluated expression is an int.
    Get pvComObject of hoSbScript to vSbScript
    Get pvComObject of hoResult to vResult
    Get ComEval Of hoJs vSbScript vResult To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoSbScript To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Set ComEmitCompact Of hoResult To False
    Get ComEmit Of hoResult To sTemp1
    Showln sTemp1

    // Output:

    // {
    //   "type": "int",
    //   "value": 42
    // }


End_Procedure