BlobPropertyBag.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. "use strict";
  2. const conversions = require("webidl-conversions");
  3. const utils = require("./utils.js");
  4. const EndingType = require("./EndingType.js");
  5. exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
  6. {
  7. const key = "endings";
  8. let value = obj === undefined || obj === null ? undefined : obj[key];
  9. if (value !== undefined) {
  10. value = EndingType.convert(globalObject, value, { context: context + " has member 'endings' that" });
  11. ret[key] = value;
  12. } else {
  13. ret[key] = "transparent";
  14. }
  15. }
  16. {
  17. const key = "type";
  18. let value = obj === undefined || obj === null ? undefined : obj[key];
  19. if (value !== undefined) {
  20. value = conversions["DOMString"](value, { context: context + " has member 'type' that", globals: globalObject });
  21. ret[key] = value;
  22. } else {
  23. ret[key] = "";
  24. }
  25. }
  26. };
  27. exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
  28. if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
  29. throw new globalObject.TypeError(`${context} is not an object.`);
  30. }
  31. const ret = Object.create(null);
  32. exports._convertInherit(globalObject, obj, ret, { context });
  33. return ret;
  34. };