From 5eece742e19090649647637420bcfb00c7f6c6e3 Mon Sep 17 00:00:00 2001 From: Doug Kearns Date: Wed, 24 Jun 2015 00:15:42 +1000 Subject: [PATCH] Fix Bookmark* autocommand events. Struct now only offers values during iteration like Array. --- common/content/bookmarks.js | 4 ++-- common/modules/base.jsm | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common/content/bookmarks.js b/common/content/bookmarks.js index efb292ec..6f943fea 100644 --- a/common/content/bookmarks.js +++ b/common/content/bookmarks.js @@ -16,12 +16,12 @@ var Bookmarks = Module("bookmarks", { storage.addObserver("bookmark-cache", function (key, event, arg) { if (["add", "change", "remove"].indexOf(event) >= 0) autocommands.trigger("Bookmark" + util.capitalize(event), - iter({ + update({ bookmark: { toString: function () "bookmarkcache.bookmarks[" + arg.id + "]", valueOf: function () arg } - }, arg).toObject()); + }, arg.toObject())); bookmarks.timer.tell(); }, window); }, diff --git a/common/modules/base.jsm b/common/modules/base.jsm index 04bda50d..abdd6b31 100644 --- a/common/modules/base.jsm +++ b/common/modules/base.jsm @@ -1405,6 +1405,10 @@ var StructBase = Class("StructBase", Array, { get: function struct_get(key, val) this[this.members[key]], set: function struct_set(key, val) this[this.members[key]] = val, + toObject: function struct_toObject() { + return iter.toObject([k, this[k]] for (k of keys(this.members))); + }, + toString: function struct_toString() Class.prototype.toString.apply(this, arguments), // Iterator over our named members