(other Value)
| 642 | } |
| 643 | |
| 644 | func (f valueFloat) Equals(other Value) bool { |
| 645 | switch o := other.(type) { |
| 646 | case valueFloat: |
| 647 | return f == o |
| 648 | case valueInt: |
| 649 | return float64(f) == float64(o) |
| 650 | case *valueBigInt: |
| 651 | if IsInfinity(f) || math.IsNaN(float64(f)) { |
| 652 | return false |
| 653 | } |
| 654 | if f := big.NewFloat(float64(f)); f.IsInt() { |
| 655 | i, _ := f.Int(nil) |
| 656 | return (*big.Int)(o).Cmp(i) == 0 |
| 657 | } |
| 658 | return false |
| 659 | case String, valueBool: |
| 660 | return float64(f) == o.ToFloat() |
| 661 | case *Object: |
| 662 | return f.Equals(o.toPrimitive()) |
| 663 | } |
| 664 | |
| 665 | return false |
| 666 | } |
| 667 | |
| 668 | func (f valueFloat) StrictEquals(other Value) bool { |
| 669 | switch o := other.(type) { |
nothing calls this directly
no test coverage detected