diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2021-07-03 15:19:41 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-03 11:49:41 +0200 |
commit | e90b97ada252a7fe81bb3ae547be4d772f70cded (patch) | |
tree | 9e701070713b499efffa98dcbe81683be1f2f462 | |
parent | caf87694d0f7168f82fc91685d1e688b68ba5ffa (diff) |
refactor: use primordials for extensions/webstorage (#11239)
-rw-r--r-- | extensions/webstorage/01_webstorage.js | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/extensions/webstorage/01_webstorage.js b/extensions/webstorage/01_webstorage.js index 43a1dbbfb..e55e94280 100644 --- a/extensions/webstorage/01_webstorage.js +++ b/extensions/webstorage/01_webstorage.js @@ -1,8 +1,18 @@ // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. +/// <reference path="../../core/internal.d.ts" /> + ((window) => { const core = window.Deno.core; const webidl = window.__bootstrap.webidl; + const { + Symbol, + ObjectDefineProperty, + ObjectFromEntries, + ObjectEntries, + ReflectGet, + Proxy, + } = window.__bootstrap.primordials; const _persistent = Symbol("[[persistent]]"); @@ -96,7 +106,7 @@ }, defineProperty(target, key, descriptor) { if (typeof key == "symbol") { - Object.defineProperty(target, key, descriptor); + ObjectDefineProperty(target, key, descriptor); } else { target.setItem(key, descriptor.value); } @@ -105,14 +115,14 @@ get(target, key) { if (typeof key == "symbol") return target[key]; if (key in target) { - return Reflect.get(...arguments); + return ReflectGet(...arguments); } else { return target.getItem(key) ?? undefined; } }, set(target, key, value) { if (typeof key == "symbol") { - Object.defineProperty(target, key, { + ObjectDefineProperty(target, key, { value, configurable: true, }); @@ -151,7 +161,7 @@ return `${this.constructor.name} ${ inspect({ length: this.length, - ...Object.fromEntries(Object.entries(proxy)), + ...ObjectFromEntries(ObjectEntries(proxy)), }) }`; }; |