Proxy App Google Chrome

GoogleChrome/proxy-polyfill: Proxy object polyfill
Unlimited Free VPN - Hola - Chrome Web Store

You can extend this to generate change notifications for anywhere in an object tree-

function observe(o, fn) { function buildProxy(prefix, o) { return new Proxy(o, { set(target, property, value) { // same as before, but add prefix fn(prefix + property, value); target[property] = value; }, get(target, property) { // return a new proxy if possible, add to prefix let out = target[property]; if (out instanceof Object) { return buildProxy(prefix + property + '.', out); } return out; // primitive, ignore }, }); } return buildProxy('', o); } let x = {'model': {name: 'Falcon'}}; let p = observe(x, function(property, value) {, value) }); = 'Commodore'; // Commodore

Adding new properties

The following line will fail (with a TypeError in strict mode) with the polyfill, as it's unable to intercept new properties-

p.model.year = 2016; // error in polyfill

However, you can replace the entire object at once - once you access it again, your code will see the proxied version.

p.model = {name: 'Falcon', year: 2016}; // model Object {name: "Falcon", year: 2016}

Include the JavaScript at the start of your page, as an ES6 module (although browsers that support ES6 modules support Proxy natively) or include it as a dependency to your build steps. The source is in ES6, but the included, minified version is ES5.


Available via NPM or Bower-

$ npm install proxy-polyfill $ bower install proxy-polyfill

If this is imported as a Node module, it will polyfill the global namespace rather than returning the Proxy object.


The polyfill supports browsers that implement the full ES5 spec, such as IE9+ and Safari 6+. Firefox, Chrome, Safari 10+ and Edge support Proxy natively.


Related posts:

  1. Proxy server on Chrome
  2. Proxy App for Chrome
  3. Proxying Definition
  4. Set proxy server in Chrome
  5. Proxy App for Windows