microsoft / microsoft/playwright-python

[Bug]: 0.0 is serialized as -0 when passed to evaluate()

Abierto Apto para principiantes
#3,186 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Python
Estrellas
15k
Forks
1.2k
Merge medio
55 min
PR fusionados (30 d)
4

Descripción

Version

1.62.1

Steps to reproduce

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()

result = page.evaluate("(value) => Object.is(value, -0)", 0.0)
print(result)

browser.close()
Expected behavior

Passing Python 0.0 to JavaScript should preserve positive zero.
Object.is(value, -0) should return false.

Actual behavior

Python 0.0 is serialized as JavaScript -0.
Object.is(value, -0) returns true.

Additional context

No response

Environment
- Operating System: macOS Tahoe 26.4.1
- CPU: Apple M1 (arm64)
- Browser: Chromium
- Python Version: Python 3.14.5
- Other info:

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el punto de entrada sync_playwright page.evaluate y reproduce el problema usando el ejemplo de Python proporcionado. Traza cómo se serializa el argumento 0.0 antes de llegar a JavaScript y, a continuación, verifica que Object.is(value, -0) devuelve false con el comportamiento corregido.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
api, testing-qa
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Activo
Claridad
Bastante claro
Aptitud para principiantes
68/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.