Converting legacy functions to ECMAScript

ECMAScript follows its own string parsing rules. Hence, while converting legacy functions to ECMAScript, ensure that you adhere to the following guidelines:
  • All strings must be enclosed in quotation marks, with appropriate escape sequences:
    • Quotation marks within the value of the string must be preceded by a backslash (\")
    • Backslashes must be preceded by another backslash (\\)
      Example legacy function:
      setTag(testFileName, C:\myfile.txt)
      After conversion to ECMAScript:
      setTag("testFileName", "C:\\myfile.txt")
      testFileName = "C:\\myfile.txt"
  • Replace the null() function with the null keyword.
    Example legacy function:
    setTag(testTag, null())
    After conversion to ECMAScript:
    setTag("testTag", null)
    testTag = null
  • Although the setTag() function is still valid in ECMAScript, you can assign values directly instead:
    Example legacy function:
    setTag(testTag, newValue)
    After conversion to ECMAScript:
    testTag = "newValue"
    tags["testTag"] = "newValue"
    Note: A direct reference to a tag named id must be qualified with tags. In ECMAScript you can reference a tag with:
    When the tag name is id, resolves correctly during execution.
  • Similarly, you can replace the legacy add() function with an operator:
    Example legacy function:
    add(%%testTag%%, 1)
    After conversion to ECMAScript:
    testTag + 1
  • ECMAScript functions do not recognize double percent signs (%%). Therefore, when you write a function, do not enclose the tags in double percent signs as you would in a legacy function. HCL OneTest™ API tags are automatically exposed as ECMAScript local variables.
    • In most cases, you can treat the tag name as a local variable:
      Example legacy function:
      After conversion to ECMAScript:
      Example legacy function:
      xpath(%%xml%%, %%xpathString%%)
      After conversion to ECMAScript:
      xpath(xml, xpathString)
    • Tag names that include symbols or reserved words can cause problems; in those cases use the tags["tagname"] style of notation.
      Same example, after conversion to ECMAScript:
      xpath(tags["xml"], tags["xpathString"])