JSFiddle - React, Tailwind, and code Playground

HTML

<pre id="output"></pre>

<script>
  var buf = '';
  function output(string, indent) {
    if (indent)
      buf += '\t';
    buf += string;
    buf += '\n';
	}
</script>

JavaScript

function notAShimJustAFunction(obj) {
    var iterator = new Object();
    
    iterator[Symbol.iterator] = function() {
      var keys = Object.keys(obj)[Symbol.iterator]();
    	var output;
      
    	return {next:function() {
	      if (!(output = keys.next()).done)
	        output.value = [output.value, obj[output.value]];
	      return output;
	    }};
    };
    
    return iterator;
}

var ordinaryObject = {well:'hello', there:'!'};
for (let [key, value] of notAShimJustAFunction(ordinaryObject))
	output(key + ':' + value, true);
  
document.getElementById('output').innerHTML = buf;