[Improvement][Master] switch task doesn't support includes function
Search before asking
- [X] I had searched in the issues and found no similar feature requirement.
Description
I want to execute condition like ['abc','def'].includes(${output}) in switch task, but error occurs:
javax.script.ScriptException: TypeError: ["abc", "efg"].includes is not a function in <eval> at line number 1
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:454)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402)
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
at org.apache.dolphinscheduler.server.master.utils.SwitchTaskUtils.evaluate(SwitchTaskUtils.java:35)
Actually the includes function can be supported by using polyfills as https://stackoverflow.com/questions/47543566/scriptengine-javascript-doesnt-support-includes mentioned.
Are you willing to submit a PR?
- [X] Yes I am willing to submit a PR!
Code of Conduct
- [X] I agree to follow this project's Code of Conduct
Can you provide reproduce steps?
create a workflow containing a switch task. set the condition like ['abc','def'].includes('abc'), and you will get the exception. I use the 3.2.0 version, and I also tried in 3.2.2, same situation.
I see. Would you like to fix it? @ChaoquanTao
no problem