[gnome-shell] Add params.js, for function param object parsing.
- From: Dan Winship <danw src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-shell] Add params.js, for function param object parsing.
- Date: Mon, 23 Nov 2009 18:49:49 +0000 (UTC)
commit e9787c0f1e4a377749b2906397ccb5dac4d06e38
Author: Dan Winship <danw gnome org>
Date: Tue Nov 3 16:05:54 2009 -0500
Add params.js, for function param object parsing.
js/misc/Makefile.am | 3 ++-
js/misc/params.js | 33 +++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+), 1 deletions(-)
---
diff --git a/js/misc/Makefile.am b/js/misc/Makefile.am
index 084a45c..9118b1f 100644
--- a/js/misc/Makefile.am
+++ b/js/misc/Makefile.am
@@ -2,4 +2,5 @@ jsmiscdir = $(pkgdatadir)/js/misc
dist_jsmisc_DATA = \
docInfo.js \
- format.js
+ format.js \
+ params.js
diff --git a/js/misc/params.js b/js/misc/params.js
new file mode 100644
index 0000000..77c51b9
--- /dev/null
+++ b/js/misc/params.js
@@ -0,0 +1,33 @@
+/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
+
+// parse:
+// @params: caller-provided parameter object, or %null
+// @default: function-provided defaults object
+// @allowExtras: whether or not to allow properties not in @default
+//
+// Examines @params and fills in default values from @defaults for
+// any properties in @defaults that don't appear in @params. If
+// @allowExtras is not %true, it will throw an error if @params
+// contains any properties that aren't in @defaults.
+//
+// If @params is %null, this returns @defaults.
+//
+// Return value: the updated params
+function parse(params, defaults, allowExtras) {
+ if (!params)
+ return defaults;
+
+ if (!allowExtras) {
+ for (let prop in params) {
+ if (!(prop in defaults))
+ throw new Error('Unrecognized parameter "' + prop + '"');
+ }
+ }
+
+ for (let prop in defaults) {
+ if (!(prop in params))
+ params[prop] = defaults[prop];
+ }
+
+ return params;
+}
\ No newline at end of file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]