3 // Set property function
4 var setProperty = function(obj, prop, flag, values) {
5 Object.defineProperty(obj, prop.name, {
8 if(typeof value != 'boolean') throw new Error(f("%s required a boolean", prop.name));
10 if(value == true) values.flags |= flag;
11 // Flip the bit to 0 if it's set, otherwise ignore
12 if(value == false && (values.flags & flag) == flag) values.flags ^= flag;
15 , get: function() { return prop.value; }
19 // Set property function
20 var getProperty = function(obj, propName, fieldName, values, func) {
21 Object.defineProperty(obj, propName, {
24 // Not parsed yet, parse it
25 if(values[fieldName] == null && obj.isParsed && !obj.isParsed()) {
29 // Do we have a post processing function
30 if(typeof func == 'function') return func(values[fieldName]);
32 return values[fieldName];
37 // Set simple property
38 var getSingleProperty = function(obj, name, value) {
39 Object.defineProperty(obj, name, {
48 var copy = function(fObj, tObj) {
50 for(var name in fObj) tObj[name] = fObj[name];
54 var debugOptions = function(debugFields, options) {
55 var finaloptions = {};
56 debugFields.forEach(function(n) {
57 finaloptions[n] = options[n];
63 exports.setProperty = setProperty;
64 exports.getProperty = getProperty;
65 exports.getSingleProperty = getSingleProperty;
67 exports.debugOptions = debugOptions;