Alternatives of JavaScript Proxy
<p>I want to use <code>Proxy</code> on a customized class called <code>ObservableList</code> which contains an <code>Array</code>. Since <code>Proxy</code> is available only after ES6, I wonder if there is any alternative implementation.</p>

<p>My requirement is to get updated (rather than get noticed) for observers once <code>ObservableList</code> changes, so that the observers are always consist with observable with some filtering or mapping method.</p>

<pre><code>var activities = new ObservableList(['reading', 'swimming']);
var sAct = activities.filter(function(v) {
  return v[0] === 's';
});
// expect sAct.list to be ['swimming']
var meAct = activities.map(function(v) {
  return 'I am ' + v;
});
// expect meAct.list to be ['I am reading', 'I am swimming']

activities.list.push('smiling');
console.log(sAct.list, meAct.list);
// expect sAct.list to be ['swimming', 'smiling']
// expect meAct.list to be ['I am reading', 'I am swimming', 'I am smiling']

activities.list[1] = 'snoopying';
console.log(sAct.list, meAct.list);
// expect sAct.list to be ['swimming', 'snoopying']
// expect meAct.list to be ['I am reading', 'I am snoopying', 'I am smiling']
</code></pre>

<p>My implementation with Proxy is available at <a href="https://jsfiddle.net/ovilia/tLmbptr0/3/" rel="noreferrer">https://jsfiddle.net/ovilia/tLmbptr0/3/</a></p>