Blame view

lib/jsdom/living/svg/SVGNumber-impl.js 1.01 KB
858f2bdf5   Boyan Georgiev   fixes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
  "use strict";
  
  const DOMException = require("domexception/webidl2js-wrapper");
  
  class SVGNumberImpl {
    constructor(globalObject, args, privateData) {
      // Delegate to parent List object for (almost) everything related to reflection.
      this._parentList = privateData.parentList;
      this._value = 0;
    }
  
    get _readOnly() {
      if (this._parentList !== undefined) {
        return this._parentList._readOnly;
      }
      return false;
    }
  
    _synchronize() {
      if (this._parentList !== undefined) {
        this._parentList._synchronize();
      }
    }
  
    _reserialize() {
      if (this._parentList !== undefined) {
        this._parentList._reserialize();
      }
    }
  
    get value() {
      this._synchronize();
      return this._value;
    }
  
    set value(value) {
      if (this._readOnly) {
        throw DOMException.create(this._globalObject, [
          "Attempting to modify a read-only SVGNumber",
          "NoModificationAllowedError"
        ]);
      }
      this._value = value;
      this._reserialize();
    }
  }
  
  exports.implementation = SVGNumberImpl;