diff --git a/features/proxy-reflect.yml b/features/proxy-reflect.yml new file mode 100644 index 00000000000..eb0bea988fd --- /dev/null +++ b/features/proxy-reflect.yml @@ -0,0 +1,39 @@ +name: Proxy and Reflect +description: "The `Proxy` and `Reflect` JavaScript built-ins intercept and define custom behavior for fundamental language operations (such as property lookup, assignment, enumeration, or function invocation)." +spec: https://tc39.es/ecma262/multipage/reflection.html#sec-reflection +group: javascript +caniuse: proxy +snapshot: ecmascript-2015 +status: + compute_from: javascript.builtins.Proxy +compat_features: + - javascript.builtins.Proxy + - javascript.builtins.Proxy.Proxy + - javascript.builtins.Proxy.handler.apply + - javascript.builtins.Proxy.handler.construct + - javascript.builtins.Proxy.handler.defineProperty + - javascript.builtins.Proxy.handler.deleteProperty + - javascript.builtins.Proxy.handler.get + - javascript.builtins.Proxy.handler.getOwnPropertyDescriptor + - javascript.builtins.Proxy.handler.getPrototypeOf + - javascript.builtins.Proxy.handler.has + - javascript.builtins.Proxy.handler.isExtensible + - javascript.builtins.Proxy.handler.ownKeys + - javascript.builtins.Proxy.handler.preventExtensions + - javascript.builtins.Proxy.handler.set + - javascript.builtins.Proxy.handler.setPrototypeOf + - javascript.builtins.Proxy.revocable + - javascript.builtins.Reflect + - javascript.builtins.Reflect.apply + - javascript.builtins.Reflect.construct + - javascript.builtins.Reflect.defineProperty + - javascript.builtins.Reflect.deleteProperty + - javascript.builtins.Reflect.get + - javascript.builtins.Reflect.getOwnPropertyDescriptor + - javascript.builtins.Reflect.getPrototypeOf + - javascript.builtins.Reflect.has + - javascript.builtins.Reflect.isExtensible + - javascript.builtins.Reflect.ownKeys + - javascript.builtins.Reflect.preventExtensions + - javascript.builtins.Reflect.set + - javascript.builtins.Reflect.setPrototypeOf diff --git a/features/proxy-reflect.yml.dist b/features/proxy-reflect.yml.dist new file mode 100644 index 00000000000..42b5c09770d --- /dev/null +++ b/features/proxy-reflect.yml.dist @@ -0,0 +1,130 @@ +# Generated from: proxy-reflect.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2016-09-20 + baseline_high_date: 2019-03-20 + support: + chrome: "49" + chrome_android: "49" + edge: "12" + firefox: "18" + firefox_android: "18" + safari: "10" + safari_ios: "10" +compat_features: + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "12" + # firefox: "18" + # firefox_android: "18" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.Proxy + - javascript.builtins.Proxy.Proxy + - javascript.builtins.Proxy.handler.apply + - javascript.builtins.Proxy.handler.construct + - javascript.builtins.Proxy.handler.defineProperty + - javascript.builtins.Proxy.handler.deleteProperty + - javascript.builtins.Proxy.handler.get + - javascript.builtins.Proxy.handler.getOwnPropertyDescriptor + - javascript.builtins.Proxy.handler.has + - javascript.builtins.Proxy.handler.ownKeys + - javascript.builtins.Proxy.handler.set + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "12" + # firefox: "22" + # firefox_android: "22" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.Proxy.handler.preventExtensions + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "12" + # firefox: "31" + # firefox_android: "31" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.Proxy.handler.isExtensible + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "12" + # firefox: "42" + # firefox_android: "42" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.Reflect + - javascript.builtins.Reflect.apply + - javascript.builtins.Reflect.construct + - javascript.builtins.Reflect.defineProperty + - javascript.builtins.Reflect.deleteProperty + - javascript.builtins.Reflect.get + - javascript.builtins.Reflect.getOwnPropertyDescriptor + - javascript.builtins.Reflect.getPrototypeOf + - javascript.builtins.Reflect.has + - javascript.builtins.Reflect.isExtensible + - javascript.builtins.Reflect.ownKeys + - javascript.builtins.Reflect.preventExtensions + - javascript.builtins.Reflect.set + - javascript.builtins.Reflect.setPrototypeOf + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "12" + # firefox: "49" + # firefox_android: "49" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.Proxy.handler.setPrototypeOf + + # baseline: high + # baseline_low_date: 2017-12-06 + # baseline_high_date: 2020-06-06 + # support: + # chrome: "63" + # chrome_android: "63" + # edge: "12" + # firefox: "34" + # firefox_android: "34" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.Proxy.revocable + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "79" + # firefox: "49" + # firefox_android: "49" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.Proxy.handler.getPrototypeOf