Sample code for 30+ languages & platforms
DataFlex

Eval JavaScript Returning String

See more JavaScript Examples

Demonstrates getting the completion value of a JavaScript that returns a string.

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 a string.

    // 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_string.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 a string.
    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 hoJs To sTemp1
        Showln sTemp1
        Procedure_Return
    End

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

    // Output:

    // {
    //   "type": "string",
    //   "value": "Ready for Chilkat.Js"
    // }


End_Procedure