Mercurial > vim
view runtime/syntax/javascript.vim @ 33295:a43861545866 v9.0.1913
patch 9.0.1913: if_python: undefined behaviour for function pointers
Commit: https://github.com/vim/vim/commit/2ce070c27acd12ccc614afa4cecf4970a645a4af
Author: Yee Cheng Chin <ychin.git@gmail.com>
Date: Tue Sep 19 20:30:22 2023 +0200
patch 9.0.1913: if_python: undefined behaviour for function pointers
Problem: if_python: undefined behaviour for function pointers
Solution: Fix if_python undefined behavior for function pointer casts
Identified by clang 17 UBSAN (see #12745). Make sure to cast function
pointers with the same signature only.
closes: #13122
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 19 Sep 2023 20:45:05 +0200 |
parents | 8509b2b41b28 |
children | 11fc42b05554 |
line wrap: on
line source
" Vim syntax file " Language: JavaScript " Maintainer: Claudio Fleiner <claudio@fleiner.com> " Updaters: Scott Shattuck (ss) <ss@technicalpursuit.com> " URL: http://www.fleiner.com/vim/syntax/javascript.vim " Changes: (ss) added keywords, reserved words, and other identifiers " (ss) repaired several quoting and grouping glitches " (ss) fixed regex parsing issue with multiple qualifiers [gi] " (ss) additional factoring of keywords, globals, and members " Last Change: 2022 Jun 09 " 2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke) " 2018 Apr 14: adjusted javaScriptRegexpString (LongJohnCoder) " tuning parameters: " unlet javaScript_fold if !exists("main_syntax") " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif let main_syntax = 'javascript' elseif exists("b:current_syntax") && b:current_syntax == "javascript" finish endif let s:cpo_save = &cpo set cpo&vim syn keyword javaScriptCommentTodo TODO FIXME XXX TBD contained syn match javaScriptLineComment "\/\/.*" contains=@Spell,javaScriptCommentTodo syn match javaScriptCommentSkip "^[ \t]*\*\($\|[ \t]\+\)" syn region javaScriptComment start="/\*" end="\*/" contains=@Spell,javaScriptCommentTodo syn match javaScriptSpecial "\\\d\d\d\|\\." syn region javaScriptStringD start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=javaScriptSpecial,@htmlPreproc syn region javaScriptStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ contains=javaScriptSpecial,@htmlPreproc syn region javaScriptStringT start=+`+ skip=+\\\\\|\\`+ end=+`+ contains=javaScriptSpecial,javaScriptEmbed,@htmlPreproc syn region javaScriptEmbed start=+${+ end=+}+ contains=@javaScriptEmbededExpr " number handling by Christopher Leonard chris.j.leonard@gmx.com syn match javaScriptSpecialCharacter "'\\.'" syn match javaScriptNumber "\<0[bB][0-1]\+\(_[0-1]\+\)*\>" syn match javaScriptNumber "\<0[oO][0-7]\+\(_[0-7]\+\)*\>" syn match javaScriptNumber "\<0\([0-7]\+\(_[0-7]\+\)*\)\?\>" syn match javaScriptNumber "\<0[xX][0-9a-fA-F]\+\(_[0-9a-fA-F]\+\)*\>" syn match javaScriptNumber "\<\d\+\(_\d\+\)*[eE][+-]\?\d\+\>" syn match javaScriptNumber "\<[1-9]\d*\(_\d\+\)*\(\.\(\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\)\?\)\?\>" syn match javaScriptNumber "\<\(\d\+\(_\d\+\)*\)\?\.\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\>" syn match javaScriptNumber "\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\)\?\>" syn region javaScriptRegexpString start=+[,(=+]\s*/[^/*]+ms=e-1,me=e-1 skip=+\\\\\|\\/+ end=+/[gimuys]\{0,2\}\s*$+ end=+/[gimuys]\{0,2\}\s*[+;.,)\]}]+me=e-1 end=+/[gimuys]\{0,2\}\s\+\/+me=e-1 contains=@htmlPreproc,javaScriptComment oneline syn keyword javaScriptConditional if else switch syn keyword javaScriptRepeat while for do in of syn keyword javaScriptBranch break continue syn keyword javaScriptOperator new delete instanceof typeof syn keyword javaScriptType Array Boolean Date Function Number Object String RegExp syn keyword javaScriptStatement return with await yield syn keyword javaScriptBoolean true false syn keyword javaScriptNull null undefined syn keyword javaScriptIdentifier arguments this var let syn keyword javaScriptLabel case default syn keyword javaScriptException try catch finally throw syn keyword javaScriptMessage alert confirm prompt status syn keyword javaScriptGlobal self window top parent syn keyword javaScriptMember document event location syn keyword javaScriptDeprecated escape unescape syn keyword javaScriptReserved abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile async syn cluster javaScriptEmbededExpr contains=javaScriptBoolean,javaScriptNull,javaScriptIdentifier,javaScriptStringD,javaScriptStringS,javaScriptStringT if exists("javaScript_fold") syn match javaScriptFunction "\<function\>" syn region javaScriptFunctionFold start="\<function\>.*[^};]$" end="^\z1}.*$" transparent fold keepend syn sync match javaScriptSync grouphere javaScriptFunctionFold "\<function\>" syn sync match javaScriptSync grouphere NONE "^}" setlocal foldmethod=syntax setlocal foldtext=getline(v:foldstart) else syn keyword javaScriptFunction function syn match javaScriptBraces "[{}\[\]]" syn match javaScriptParens "[()]" endif if main_syntax == "javascript" syn sync fromstart syn sync maxlines=100 syn sync ccomment javaScriptComment endif " Define the default highlighting. " Only when an item doesn't have highlighting yet hi def link javaScriptComment Comment hi def link javaScriptLineComment Comment hi def link javaScriptCommentTodo Todo hi def link javaScriptSpecial Special hi def link javaScriptStringS String hi def link javaScriptStringD String hi def link javaScriptStringT String hi def link javaScriptCharacter Character hi def link javaScriptSpecialCharacter javaScriptSpecial hi def link javaScriptNumber Number hi def link javaScriptConditional Conditional hi def link javaScriptRepeat Repeat hi def link javaScriptBranch Conditional hi def link javaScriptOperator Operator hi def link javaScriptType Type hi def link javaScriptStatement Statement hi def link javaScriptFunction Function hi def link javaScriptBraces Function hi def link javaScriptError Error hi def link javaScrParenError javaScriptError hi def link javaScriptNull Keyword hi def link javaScriptBoolean Boolean hi def link javaScriptRegexpString String hi def link javaScriptIdentifier Identifier hi def link javaScriptLabel Label hi def link javaScriptException Exception hi def link javaScriptMessage Keyword hi def link javaScriptGlobal Keyword hi def link javaScriptMember Keyword hi def link javaScriptDeprecated Exception hi def link javaScriptReserved Keyword hi def link javaScriptDebug Debug hi def link javaScriptConstant Label hi def link javaScriptEmbed Special let b:current_syntax = "javascript" if main_syntax == 'javascript' unlet main_syntax endif let &cpo = s:cpo_save unlet s:cpo_save " vim: ts=8