File tree Expand file tree Collapse file tree 3 files changed +9
-2
lines changed
Expand file tree Collapse file tree 3 files changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1414* [ Rust] Fixed generic interface implementation types (by @ncave )
1515* [ Rust] Fixed Dictionary constructor from IEnumerable (by @ncave )
1616* [ Rust] Fixed Seq.cast support for arrays and lists (by @ncave )
17+ * [ GH-3783 ] ( https://github.com/fable-compiler/Fable/pull/3783 ) [ JS/TS] ` Boolean.tryParse ` should not crash on ` null ` string (@goswinr )
1718
1819### Added
1920
Original file line number Diff line number Diff line change 11import { FSharpRef } from "./Types.js"
22
33export function tryParse ( str : string , defValue : FSharpRef < boolean > ) : boolean {
4- if ( str . match ( / ^ \s * t r u e \s * $ / i) ) {
4+ if ( str != null && str . match ( / ^ \s * t r u e \s * $ / i) ) {
55 defValue . contents = true ;
66 return true ;
7- } else if ( str . match ( / ^ \s * f a l s e \s * $ / i) ) {
7+ } else if ( str != null && str . match ( / ^ \s * f a l s e \s * $ / i) ) {
88 defValue . contents = false ;
99 return true ;
1010 }
Original file line number Diff line number Diff line change @@ -90,15 +90,21 @@ let tests =
9090 throwsAnyError ( fun () -> Boolean.Parse " falsee" )
9191
9292 testCase " System.Boolean.TryParse works" <| fun () ->
93+ // expect parse success
9394 Boolean.TryParse " true" |> equal ( true , true )
9495 Boolean.TryParse " True" |> equal ( true , true )
9596 Boolean.TryParse " true " |> equal ( true , true )
9697 Boolean.TryParse " false" |> equal ( true , false )
9798 Boolean.TryParse " False" |> equal ( true , false )
9899 Boolean.TryParse " false " |> equal ( true , false )
99100
101+ // expect parse failure
100102 Boolean.TryParse " tru" |> equal ( false , false )
101103 Boolean.TryParse " falsee" |> equal ( false , false )
104+ Boolean.TryParse " 0" |> equal ( false , false )
105+ Boolean.TryParse " " |> equal ( false , false )
106+ Boolean.TryParse " 1" |> equal ( false , false )
107+ Boolean.TryParse null |> equal ( false , false )
102108
103109 testCase " System.SByte.Parse works" <| fun () ->
104110 SByte.Parse( " 5" ) |> equal 5 y
You can’t perform that action at this time.
0 commit comments