|
@@ -398,7 +398,7 @@ SVGLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
|
|
break;
|
|
break;
|
|
|
|
|
|
case 'A':
|
|
case 'A':
|
|
- var numbers = parseFloats( data );
|
|
|
|
|
|
+ var numbers = parseFloats( data, [ 3, 4 ], 7 );
|
|
|
|
|
|
for ( var j = 0, jl = numbers.length; j < jl; j += 7 ) {
|
|
for ( var j = 0, jl = numbers.length; j < jl; j += 7 ) {
|
|
|
|
|
|
@@ -590,7 +590,7 @@ SVGLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
|
|
break;
|
|
break;
|
|
|
|
|
|
case 'a':
|
|
case 'a':
|
|
- var numbers = parseFloats( data );
|
|
|
|
|
|
+ var numbers = parseFloats( data, [ 3, 4 ], 7 );
|
|
|
|
|
|
for ( var j = 0, jl = numbers.length; j < jl; j += 7 ) {
|
|
for ( var j = 0, jl = numbers.length; j < jl; j += 7 ) {
|
|
|
|
|
|
@@ -990,7 +990,7 @@ SVGLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
|
|
|
|
|
|
// from https://github.com/ppvg/svg-numbers (MIT License)
|
|
// from https://github.com/ppvg/svg-numbers (MIT License)
|
|
|
|
|
|
- function parseFloats( input ) {
|
|
|
|
|
|
+ function parseFloats( input, flags, stride ) {
|
|
|
|
|
|
if ( typeof input !== 'string' ) {
|
|
if ( typeof input !== 'string' ) {
|
|
|
|
|
|
@@ -1006,7 +1006,8 @@ SVGLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
|
|
SIGN: /[-+]/,
|
|
SIGN: /[-+]/,
|
|
POINT: /\./,
|
|
POINT: /\./,
|
|
COMMA: /,/,
|
|
COMMA: /,/,
|
|
- EXP: /e/i
|
|
|
|
|
|
+ EXP: /e/i,
|
|
|
|
+ FLAGS: /[01]/
|
|
};
|
|
};
|
|
|
|
|
|
// States
|
|
// States
|
|
@@ -1046,6 +1047,16 @@ SVGLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
|
|
|
|
|
|
current = input[ i ];
|
|
current = input[ i ];
|
|
|
|
|
|
|
|
+ // check for flags
|
|
|
|
+ if ( Array.isArray( flags ) && flags.includes( result.length % stride ) && RE.FLAGS.test( current ) ) {
|
|
|
|
+
|
|
|
|
+ state = INT;
|
|
|
|
+ number = current;
|
|
|
|
+ newNumber();
|
|
|
|
+ continue;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
// parse until next number
|
|
// parse until next number
|
|
if ( state === SEP ) {
|
|
if ( state === SEP ) {
|
|
|
|
|
|
@@ -1151,7 +1162,7 @@ SVGLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
|
|
}
|
|
}
|
|
|
|
|
|
// parse exponent part
|
|
// parse exponent part
|
|
- if ( state == EXP ) {
|
|
|
|
|
|
+ if ( state === EXP ) {
|
|
|
|
|
|
if ( RE.DIGIT.test( current ) ) {
|
|
if ( RE.DIGIT.test( current ) ) {
|
|
|
|
|