(value)
| 124 | const INCOMPLETE = 'incomplete'; |
| 125 | |
| 126 | function getCanonicalizedValue(value) { |
| 127 | switch (typeof value) { |
| 128 | case 'undefined': |
| 129 | return '<undefined>'; |
| 130 | case 'object': |
| 131 | if (value === null) { |
| 132 | return '<null>'; |
| 133 | } |
| 134 | if ('baseVal' in value) { |
| 135 | return getCanonicalizedValue(value.baseVal); |
| 136 | } |
| 137 | if (value instanceof SVGLength) { |
| 138 | return '<SVGLength: ' + value.valueAsString + '>'; |
| 139 | } |
| 140 | if (value instanceof SVGRect) { |
| 141 | return ( |
| 142 | '<SVGRect: ' + |
| 143 | [value.x, value.y, value.width, value.height].join(',') + |
| 144 | '>' |
| 145 | ); |
| 146 | } |
| 147 | if (value instanceof SVGPreserveAspectRatio) { |
| 148 | return ( |
| 149 | '<SVGPreserveAspectRatio: ' + |
| 150 | value.align + |
| 151 | '/' + |
| 152 | value.meetOrSlice + |
| 153 | '>' |
| 154 | ); |
| 155 | } |
| 156 | if (value instanceof SVGNumber) { |
| 157 | return value.value; |
| 158 | } |
| 159 | if (value instanceof SVGMatrix) { |
| 160 | return ( |
| 161 | '<SVGMatrix ' + |
| 162 | value.a + |
| 163 | ' ' + |
| 164 | value.b + |
| 165 | ' ' + |
| 166 | value.c + |
| 167 | ' ' + |
| 168 | value.d + |
| 169 | ' ' + |
| 170 | value.e + |
| 171 | ' ' + |
| 172 | value.f + |
| 173 | '>' |
| 174 | ); |
| 175 | } |
| 176 | if (value instanceof SVGTransform) { |
| 177 | return ( |
| 178 | getCanonicalizedValue(value.matrix) + |
| 179 | '/' + |
| 180 | value.type + |
| 181 | '/' + |
| 182 | value.angle |
| 183 | ); |
no test coverage detected