AdguardTeam / AdguardTeam/Scriptlets

Improve 'set-constant' — support generating a constructor

Abierto
#365 2 comentarios 0 reacciones 1 asignado Reclamado por @maximtop Ver en GitHub
enhancement Priority: P4
Lenguaje dominante
JavaScript
Estrellas
195
Forks
33
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Generating a constructor in `set-constant` scriptlet means that a filters list maintainer can make a fake class with custom methods and properties.

For example, a filters list maintainer can use it as the following filters:
```adblock
example.com#%#//scriptlet('set-constant', 'human', 'constructor')
example.com#%#//scriptlet('set-constant', 'human.prototype.sleep', 'noopFunc')
example.com#%#//scriptlet('set-constant', 'human.prototype.IsSleeping', 'false')
example.com#%#//scriptlet('set-constant', 'human.prototype.IsSleepingFunc', 'falseFunc')
```
The above filters can be converted to the following Typescript:
```typescript
class human {
constructor() {
this.IsSleeping = false
}

sleep() {
// noopFunc
}

IsSleepingFunc() {
return false
}
}
```

The generating a constructor in set-constant scriptlet can help to resolve a advertisement/tracking-related class in a normal `` element or javascript file without allowing the advertisement/tracking-related another javascript file. (E.g., https://github.com/AdguardTeam/AdguardFilters/issues/161389)

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.