Revision 6146d714
Von Sven Schöling vor mehr als 9 Jahren hinzugefügt
SL/ClientJS.pm | ||
---|---|---|
152 | 152 |
foreach my $idx (0..$num_args - 1) { |
153 | 153 |
# Force flattening from SL::Presenter::EscapedText and trim leading whitespace for scalars |
154 | 154 |
$args[$idx] = "" . $args[$idx] if ref($args[$idx]) eq 'SL::Presenter::EscapedText'; |
155 |
$args[$idx] =~ s/^\s+// if !ref($args[$idx]); |
|
156 | 155 |
} |
157 | 156 |
|
158 | 157 |
push @{ $self->_actions }, [ $method, @args ]; |
Auch abrufbar als: Unified diff
ClientJS: Values nicht trimmen
Wenn numerische Werte (also IVs und NVs) per Regex getrimmt werden,
wird dabei das POK Flag gesetzt, das anzeigt, dass der Scalar auch ein
valider String ist.
JSON kann dann nicht mehr unterscheiden welcher Typ der Scalar ist, und
nimmt String. Das führt aber dazu, dass alle Zahlen als Strings
encodiert werden.
Auch das wäre prinzipiell kein Problem, ausser dass Javascript keine
separaten Operatoren für Strings und Zahlen hat.
wird also immer als concat aufgefasst und nicht als Addition, und
ist immer true, weil "0" und "1" beide true in Javascript sind.