Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    SmartClient 6.5.1:Patch for issue: Possible "Infinite Recursion" JS error with prompt

    In SmartClient 6.5.1, under certain circumstances, it is possible to get an "Infinite Recursion" JavaScript error if a prompt has been shown via isc.showPrompt() and the user presses the Tab key repeatedly.

    Apply this patch to resolve the issue:

    Code:
    //----------------------------------------------------------------------------
    // Isomorphic SmartClient 6.5.1 patch
    // Purpose: Prevent "Infinite Recursion" script error with prompt and Tab keypress
    // 
    // Applies to SmartClient 6.5.1 build only
    //----------------------------------------------------------------------------
    if (window.isc && isc.version.startsWith("6.5.1/") ){
           isc.Canvas.addProperties({
                $kf : function (_1, _2) {
                    var _3 = this;
                    do {
                        _3 = _1 ? _3.$vy() : _3.$vz();
                    } while (_3 &&
                            (isc.EH.targetIsMasked(_3, _2) ||
                            _3.isDisabled() ||
                            !_3.isDrawn() || !_3.isVisible() || !_3.$kk()));
                    if (_3) {
                        this.logInfo("focusInNextTabElement() shifting focus to:" + _3, "syntheticTabIndex");
                        _3.focusAtEnd(_1);
                    } else if (_1) {
                        this.logInfo("focusInNextTabElement() shifting focus to first widget", "syntheticTabIndex");
                        if (isc.EH.$kj == null || 
                           (isc.EH.$kj == this && 
                             (this.isDisabled() || !this.isDrawn() || 
                             !this.isVisible()  || !this.$kk() || this.isMasked(_2))))
                        {
                            return;
                        }
                        isc.EH.$kh(_2);
                    } else {
                        this.logInfo("focusInNextTabElement() shifting focus to last widget", "syntheticTabIndex");
                        if (isc.EH.$kl == null ||
                            (isc.EH.$kj == this && 
                             (this.isDisabled() || !this.isDrawn() || 
                             !this.isVisible()  || !this.$kk() || this.isMasked(_2))))
                        {
                            return;
                        }
                        isc.EH.$kg(_2);
                    }
                }
            });
    } else if (window.isc) {
      isc.Log.logWarn("Patch for SmartClient 6.5.1 build included in this application. " +
                "You are currently running SmartClient verion '"+ isc.version + 
                "'. This patch is not compatible with this build and will have no effect. " +
                "It should be removed from your application source.");
    
    }
Working...
X