Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

console.log should not call object methods

Aberta
#1,693 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
android, javascript

Direção de pesquisa

Comece no ponto de entrada da formatação de objetos de console.log do Android runtime e reproduza os snippets de TypeScript fornecidos, incluindo o exemplo com toJSON que falha. Compare a saída com o comportamento do Chrome descrito na issue; considera-se concluído quando o logging não invoca métodos dos objetos nem é interrompido quando um deles lança uma exceção.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Environment
Provide version numbers for the following components (information can be retrieved by running tns info in your project folder or by inspecting the package.json of the project):

  • CLI: 8.1.5
  • Cross-platform modules: 6.5.11
  • Android Runtime: 6.5.3
  • iOS Runtime (if applicable): Possibly irrelevant
  • Plugin(s): Possibly irrelevant

Describe the bug
When an object contains a toString or toJSON method, and you print that object through console.log, it will automatically call that function. This is very different from what Chrome console.log does and may cause confusing behavior. For example:
The NativeScript HTTP client returns an object with a property called content that contains an object with a to toJSON method, when you console.log the return object, it will automatically call that toJSON method, while it might not even be JSON, causing the console.log to fail with a weird error from JSON.parse, like Unexpected end of JSON input.

To Reproduce

const randomVar = "test123";
const obj = {
	toJSON: () => "toJSON => this should not be logged " + randomVar
};

console.log(obj);

Expected behavior
I think it should print something like:

{
  "toJSON": ƒ
}

Or, it should catch any errors that happen during the format, and then fall back to it's normal behavior (going to toString, or not printing the property at all). It should not be breaking off the whole console.log and return the exception.

Additional context
Output when doing something like this in Chrome:
image

Output when doing something like this in NS:
image

When causing an error inside the function with:

const obj = {
	toJSON: () => JSON.parse("fakejson")
};

console.log(obj);

In Chrome:
image

In NS:
image

Linguagem predominante
C++
Estrelas
563
Forks
144
Merge médio
10h 46min
PRs com merge (30d)
14

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de NativeScript/android

Todas as issues de NativeScript/android

Issues semelhantes

Mais issues de C++

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.