Files
codeql/javascript/ql/lib/semmle/javascript/frameworks/Emscripten.qll
Andrew Eisenberg 45d1fa7f01 Packaging: Rafactor Javascript core libraries
Extract the external facing `qll` files into the codeql/javascript-all
query pack.
2021-08-25 12:15:56 -07:00

48 lines
1.3 KiB
Plaintext

/**
* Provides classes for working with Emscripten-generated code.
*/
import javascript
import semmle.javascript.GeneratedCode
/**
* An Emscripten marker comment.
*/
abstract class EmscriptenMarkerComment extends GeneratedCodeMarkerComment { }
/**
* An `EMSCRIPTEN_START_ASM` marker comment.
*/
class EmscriptenStartASMComment extends EmscriptenMarkerComment {
EmscriptenStartASMComment() { getText().trim() = "EMSCRIPTEN_START_ASM" }
}
/**
* An `EMSCRIPTEN_START_FUNCS` marker comment.
*/
class EmscriptenStartFuncsComment extends EmscriptenMarkerComment {
EmscriptenStartFuncsComment() { getText().trim() = "EMSCRIPTEN_START_FUNCS" }
}
/**
* An `EMSCRIPTEN_END_ASM` marker comment.
*/
class EmscriptenEndASMComment extends EmscriptenMarkerComment {
EmscriptenEndASMComment() { getText().trim() = "EMSCRIPTEN_END_ASM" }
}
/**
* An `EMSCRIPTEN_END_FUNCS` marker comment.
*/
class EmscriptenEndFuncsComment extends EmscriptenMarkerComment {
EmscriptenEndFuncsComment() { getText().trim() = "EMSCRIPTEN_END_FUNCS" }
}
/**
* A toplevel that was generated by Emscripten as indicated
* by an Emscripten marker comment.
*/
class EmscriptenGeneratedToplevel extends TopLevel {
EmscriptenGeneratedToplevel() { exists(EmscriptenMarkerComment emc | this = emc.getTopLevel()) }
}