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:
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."); }