'use strict'; var parsers = require('../parsers.js'); var TYPES = parsers.TYPES; var isValid = function (v) { if (v.toLowerCase() === "auto") { return true; } var type = parsers.valueType(v); return type === TYPES.LENGTH || type === TYPES.PERCENT || (type === TYPES.INTEGER && (v === '0' || v === 0)); }; var parser = function (v) { var V = v.toLowerCase(); if (V === "auto") { return V; } return parsers.parseMeasurement(v); }; var mySetter = parsers.implicitSetter('margin', '', isValid, parser); var myGlobal = parsers.implicitSetter('margin', '', function () { return true; }, function (v) { return v; }); module.exports.definition = { set: function (v) { if (typeof v === "number") { v = String(v); } if (typeof v !== "string") { return; } var V = v.toLowerCase(); switch (V) { case 'inherit': case 'initial': case 'unset': case '': myGlobal.call(this, V); break; default: mySetter.call(this, v); break; } }, get: function () { return this.getPropertyValue('margin'); }, enumerable: true, configurable: true }; module.exports.isValid = isValid; module.exports.parser = parser;