diff --git a/src/js/proxies.js b/src/js/proxies.js
index 194ea9f195409ea4b512ec15c84bdd014c21a30b..f0567fdeaf6db9b4671283b5cb7171173c234b5a 100644
--- a/src/js/proxies.js
+++ b/src/js/proxies.js
@@ -9,6 +9,15 @@ window.StoryProxyWritable = new Proxy({}, {
         deleteProperty:function(o, prop) {
             delete State.variables[prop];
             return true;
+        },
+        ownKeys: function(o, prop) {
+            return Object.keys(State.variables);
+        },
+        has: function(o, prop) {
+            return prop in State.variables;
+        },
+        getOwnPropertyDescriptor: function(o, prop) {
+            return Object.getOwnPropertyDescriptor(State.variables, prop);
         }
     });
 window.StoryProxyReadOnly = new Proxy({}, {
@@ -20,6 +29,15 @@ window.StoryProxyReadOnly = new Proxy({}, {
         },
         deleteProperty:function(o, prop) {
             return false;
+        },
+        ownKeys: function(o, prop) {
+            return Object.keys(State.variables);
+        },
+        has: function(o, prop) {
+            return prop in State.variables;
+        },
+        getOwnPropertyDescriptor: function(o, prop) {
+            return Object.getOwnPropertyDescriptor(State.variables, prop);
         }
     });
 window.V = window.StoryProxyWritable;