Skip to content

Commit

Permalink
Fixed traceback when Number global function is passed a non-literal v…
Browse files Browse the repository at this point in the history
…alue. Potential fallout from 673536
  • Loading branch information
mattbasta committed Aug 4, 2011
1 parent d9a8c5a commit dc2aed1
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
24 changes: 24 additions & 0 deletions tests/test_js_functions.py
@@ -1,3 +1,5 @@
from nose.tools import eq_

from js_helper import _do_test_raw, _get_var

def test_createElement():
Expand Down Expand Up @@ -108,3 +110,25 @@ def test_extraneous_globals():
assert "foo" not in err.final_context.data
assert "bar" not in err.final_context.data


def test_number_global_conversions():
"""Test that the Number global constructor functions properly."""
err = _do_test_raw("""
var a = Number(),
b = Number(123),
c = Number(123.123),
d = Number("123"),
e = Number("123.456"),
f = Number("foo"),
g = Number(null),
nan = window.NaN;
""")
assert not err.failed()
eq_(_get_var(err, "a"), 0)
eq_(_get_var(err, "b"), 123)
eq_(_get_var(err, "c"), 123.123)
eq_(_get_var(err, "d"), 123)
eq_(_get_var(err, "e"), 123.456)
eq_(_get_var(err, "f"), _get_var(err, "nan"))
eq_(_get_var(err, "g"), _get_var(err, "nan"))

2 changes: 1 addition & 1 deletion validator/testcases/javascript/call_definitions.py
Expand Up @@ -123,7 +123,7 @@ def number_global(wrapper, arguments, traverser):
arg = traverser._traverse_node(arguments[0])
try:
value = float(arg.get_literal_value())
except ValueError:
except (ValueError, TypeError):
return traverser._build_global(
name="NaN",
entity=predefinedentities.GLOBAL_ENTITIES[u"NaN"])
Expand Down

0 comments on commit dc2aed1

Please sign in to comment.