Stack implementation in ES6
Why are you using a symbol for the data? If you're hoping for private variables, you're out of luck.
return JSON.stringify(res.join(' ')); Why? Why not just return JSON.stringify([...this]) or something? Why both join into a string and JSON stringify?
return this[data].slice(-1)[0]; is inefficient as it needlessly copies the array for each call. return this[data][this.size()]; should be (if marginally) better.
Why is your reverseArrayGenerator generator function not in Utils?
isDefAndNotNull, while nice, can be shortened or completely dropped. Shortened to object != null which is exactly the same thing, or dropped altogether in favor of:&nbsp;&nbsp; object &amp;&amp; typeof object[Symbol.iterator] === 'function';


I won't repeat what the other answer says, but it's also correct.