Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
104
third-party/vendor/swc_ecma_codegen/src/comments.rs
vendored
Normal file
104
third-party/vendor/swc_ecma_codegen/src/comments.rs
vendored
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
use swc_common::comments::CommentKind;
|
||||
|
||||
use super::*;
|
||||
|
||||
macro_rules! write_comments {
|
||||
($e:expr, $prefix_space:expr, $cmts:expr) => {{
|
||||
let cmts = match $cmts {
|
||||
Some(v) => v,
|
||||
None => return Ok(()),
|
||||
};
|
||||
|
||||
for cmt in cmts.iter() {
|
||||
match cmt.kind {
|
||||
CommentKind::Line => {
|
||||
if $prefix_space && !$e.cfg.minify {
|
||||
$e.wr.write_comment(" ")?;
|
||||
}
|
||||
|
||||
srcmap!($e, cmt, true);
|
||||
|
||||
$e.wr.write_comment("//")?;
|
||||
$e.wr.write_comment(&cmt.text)?;
|
||||
|
||||
srcmap!($e, cmt, false);
|
||||
|
||||
$e.wr.write_line()?;
|
||||
}
|
||||
CommentKind::Block => {
|
||||
if $prefix_space && !$e.cfg.minify {
|
||||
$e.wr.write_comment(" ")?;
|
||||
}
|
||||
|
||||
srcmap!($e, cmt, true);
|
||||
|
||||
$e.wr.write_comment("/*")?;
|
||||
$e.wr.write_comment(&cmt.text)?;
|
||||
|
||||
{
|
||||
let hi = cmt.span_hi();
|
||||
if !hi.is_dummy() && hi.0 > 2 {
|
||||
$e.wr.add_srcmap(hi - swc_common::BytePos(2))?;
|
||||
}
|
||||
}
|
||||
$e.wr.write_comment("*/")?;
|
||||
|
||||
if !$e.cfg.minify {
|
||||
$e.wr.write_space()?;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Ok(());
|
||||
}};
|
||||
}
|
||||
|
||||
impl<'a, W, S: SourceMapper> Emitter<'a, W, S>
|
||||
where
|
||||
W: WriteJs,
|
||||
S: SourceMapperExt,
|
||||
{
|
||||
pub(super) fn emit_trailing_comments_of_pos(
|
||||
&mut self,
|
||||
pos: BytePos,
|
||||
prefix_space: bool,
|
||||
_is_hi: bool,
|
||||
) -> Result {
|
||||
if pos.is_dummy() {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let comments = match self.comments {
|
||||
Some(ref comments) => comments,
|
||||
None => return Ok(()),
|
||||
};
|
||||
|
||||
let cmts = comments.take_trailing(pos);
|
||||
|
||||
write_comments!(self, prefix_space, &cmts)
|
||||
}
|
||||
|
||||
pub(super) fn emit_leading_comments(&mut self, mut pos: BytePos, is_hi: bool) -> Result {
|
||||
if pos.is_dummy() {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let comments = match self.comments {
|
||||
Some(ref comments) => comments,
|
||||
None => return Ok(()),
|
||||
};
|
||||
|
||||
if is_hi {
|
||||
pos = pos - BytePos(1)
|
||||
}
|
||||
|
||||
write_comments!(self, false, comments.take_leading(pos))
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
pub(super) fn emit_leading_comments_of_span(&mut self, span: Span, is_hi: bool) -> Result {
|
||||
let pos = if is_hi { span.hi } else { span.lo };
|
||||
self.emit_leading_comments(pos, is_hi)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue