JSFiddle - React, Tailwind, and code Playground

HTML

<h2>safari createJavaScriptNode demo</h2>

<button id="suspendBtn" >Suspend context</button>
<button id="resumeBtn" >Resume context</button>

<script>
	  var suspendBtn = document.getElementById("suspendBtn");
    var resumeBtn = document.getElementById("resumeBtn");

    suspendBtn.onclick = function() {
        context.suspend();
    }

    resumeBtn.onclick = function() {
        context.resume();
    }

    var context = new webkitAudioContext();
    var generatorNode = context.createJavaScriptNode(2048, 1, 2);
    
    generatorNode.onaudioprocess = function generateWhiteNoise(e) {
        var output = e.outputBuffer.getChannelData(0);

        for (var i = 0; i < output.length; i++) {
            output[i] = ( Math.random() * 2 ) - 1;
        }
    }
    
    // This connects the generatorNode but in a suspended state!
    generatorNode.connect(context.destination);
    
    // This has no effect! 
    // seems that it needs to be called from another context/closure
    context.resume();
</script>