diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-05-04 23:06:14 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-05-04 23:06:20 +0100 |
commit | 6dfc0f1486e50ff6a3bb74164cc5e0af6b012deb (patch) | |
tree | ee2ef12f492262dcb427921843b15a8eca63f298 /content/handlers/javascript/duktape/generics.js | |
parent | 38a65c0242ca7b32aa74537ab72d52510a9a32c8 (diff) | |
download | netsurf-6dfc0f1486e50ff6a3bb74164cc5e0af6b012deb.tar.gz netsurf-6dfc0f1486e50ff6a3bb74164cc5e0af6b012deb.tar.bz2 |
Support nodelist indexing
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'content/handlers/javascript/duktape/generics.js')
-rw-r--r-- | content/handlers/javascript/duktape/generics.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/content/handlers/javascript/duktape/generics.js b/content/handlers/javascript/duktape/generics.js new file mode 100644 index 000000000..ee5e8013b --- /dev/null +++ b/content/handlers/javascript/duktape/generics.js @@ -0,0 +1,30 @@ +/* + * Generics for Duktape binding in NetSurf + * + * The result of this *MUST* be setting a NetSurf object only. + * + * That object will then be absorbed into the global object as a hidden + * object which is used by the rest of the bindings. + */ + +var NetSurf = { + /* The make-proxy call for list-type objects */ + makeListProxy: function(inner) { + return new Proxy(inner, { + has: function(target, key) { + if (typeof key == 'number') { + return (key >= 0) && (key < target.length); + } else { + return key in target; + } + }, + get: function(target, key) { + if (typeof key == 'number') { + return target.item(key); + } else { + return target[key]; + } + }, + }); + }, +}; |