diff --git a/BUILD.gn b/BUILD.gn
index afe61c0..7e7658e 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -80,6 +80,9 @@
   defines = []
   if (is_clang) {
     cflags += [ "-Wshadow" ]
+
+    # TODO(thakis): Remove once this is on globally, https://crbug.com/926235
+    cflags += [ "-Wextra-semi" ]
   }
   if (is_linux) {
     if (current_cpu == "x64") {
diff --git a/core/fxge/win32/win32_int.h b/core/fxge/win32/win32_int.h
index 75dff0c..3d4ef2d 100644
--- a/core/fxge/win32/win32_int.h
+++ b/core/fxge/win32/win32_int.h
@@ -281,8 +281,8 @@
  private:
   // RenderDeviceDriverIface
   int GetDeviceCaps(int caps_id) const override;
-  void SaveState() override{};
-  void RestoreState(bool bKeepSaved) override{};
+  void SaveState() override {}
+  void RestoreState(bool bKeepSaved) override {}
   bool SetClip_PathFill(const CFX_PathData* pPathData,
                         const CFX_Matrix* pObject2Device,
                         int fill_mode) override;
diff --git a/fxjs/cjs_annot.h b/fxjs/cjs_annot.h
index 0c2a66b..2ddc448 100644
--- a/fxjs/cjs_annot.h
+++ b/fxjs/cjs_annot.h
@@ -22,9 +22,9 @@
 
   void SetSDKAnnot(CPDFSDK_BAAnnot* annot);
 
-  JS_STATIC_PROP(hidden, hidden, CJS_Annot);
-  JS_STATIC_PROP(name, name, CJS_Annot);
-  JS_STATIC_PROP(type, type, CJS_Annot);
+  JS_STATIC_PROP(hidden, hidden, CJS_Annot)
+  JS_STATIC_PROP(name, name, CJS_Annot)
+  JS_STATIC_PROP(type, type, CJS_Annot)
 
  private:
   static int ObjDefnID;
diff --git a/fxjs/cjs_app.h b/fxjs/cjs_app.h
index 9948133..524a7f0 100644
--- a/fxjs/cjs_app.h
+++ b/fxjs/cjs_app.h
@@ -30,40 +30,40 @@
 
   static WideString SysPathToPDFPath(const WideString& sOldPath);
 
-  JS_STATIC_PROP(activeDocs, active_docs, CJS_App);
-  JS_STATIC_PROP(calculate, calculate, CJS_App);
-  JS_STATIC_PROP(formsVersion, forms_version, CJS_App);
-  JS_STATIC_PROP(fs, fs, CJS_App);
-  JS_STATIC_PROP(fullscreen, fullscreen, CJS_App);
-  JS_STATIC_PROP(language, language, CJS_App);
-  JS_STATIC_PROP(media, media, CJS_App);
-  JS_STATIC_PROP(platform, platform, CJS_App);
-  JS_STATIC_PROP(runtimeHighlight, runtime_highlight, CJS_App);
-  JS_STATIC_PROP(viewerType, viewer_type, CJS_App);
-  JS_STATIC_PROP(viewerVariation, viewer_variation, CJS_App);
-  JS_STATIC_PROP(viewerVersion, viewer_version, CJS_App);
+  JS_STATIC_PROP(activeDocs, active_docs, CJS_App)
+  JS_STATIC_PROP(calculate, calculate, CJS_App)
+  JS_STATIC_PROP(formsVersion, forms_version, CJS_App)
+  JS_STATIC_PROP(fs, fs, CJS_App)
+  JS_STATIC_PROP(fullscreen, fullscreen, CJS_App)
+  JS_STATIC_PROP(language, language, CJS_App)
+  JS_STATIC_PROP(media, media, CJS_App)
+  JS_STATIC_PROP(platform, platform, CJS_App)
+  JS_STATIC_PROP(runtimeHighlight, runtime_highlight, CJS_App)
+  JS_STATIC_PROP(viewerType, viewer_type, CJS_App)
+  JS_STATIC_PROP(viewerVariation, viewer_variation, CJS_App)
+  JS_STATIC_PROP(viewerVersion, viewer_version, CJS_App)
 
-  JS_STATIC_METHOD(alert, CJS_App);
-  JS_STATIC_METHOD(beep, CJS_App);
-  JS_STATIC_METHOD(browseForDoc, CJS_App);
-  JS_STATIC_METHOD(clearInterval, CJS_App);
-  JS_STATIC_METHOD(clearTimeOut, CJS_App);
-  JS_STATIC_METHOD(execDialog, CJS_App);
-  JS_STATIC_METHOD(execMenuItem, CJS_App);
-  JS_STATIC_METHOD(findComponent, CJS_App);
-  JS_STATIC_METHOD(goBack, CJS_App);
-  JS_STATIC_METHOD(goForward, CJS_App);
-  JS_STATIC_METHOD(launchURL, CJS_App);
-  JS_STATIC_METHOD(mailMsg, CJS_App);
-  JS_STATIC_METHOD(newFDF, CJS_App);
-  JS_STATIC_METHOD(newDoc, CJS_App);
-  JS_STATIC_METHOD(openDoc, CJS_App);
-  JS_STATIC_METHOD(openFDF, CJS_App);
-  JS_STATIC_METHOD(popUpMenuEx, CJS_App);
-  JS_STATIC_METHOD(popUpMenu, CJS_App);
-  JS_STATIC_METHOD(response, CJS_App);
-  JS_STATIC_METHOD(setInterval, CJS_App);
-  JS_STATIC_METHOD(setTimeOut, CJS_App);
+  JS_STATIC_METHOD(alert, CJS_App)
+  JS_STATIC_METHOD(beep, CJS_App)
+  JS_STATIC_METHOD(browseForDoc, CJS_App)
+  JS_STATIC_METHOD(clearInterval, CJS_App)
+  JS_STATIC_METHOD(clearTimeOut, CJS_App)
+  JS_STATIC_METHOD(execDialog, CJS_App)
+  JS_STATIC_METHOD(execMenuItem, CJS_App)
+  JS_STATIC_METHOD(findComponent, CJS_App)
+  JS_STATIC_METHOD(goBack, CJS_App)
+  JS_STATIC_METHOD(goForward, CJS_App)
+  JS_STATIC_METHOD(launchURL, CJS_App)
+  JS_STATIC_METHOD(mailMsg, CJS_App)
+  JS_STATIC_METHOD(newFDF, CJS_App)
+  JS_STATIC_METHOD(newDoc, CJS_App)
+  JS_STATIC_METHOD(openDoc, CJS_App)
+  JS_STATIC_METHOD(openFDF, CJS_App)
+  JS_STATIC_METHOD(popUpMenuEx, CJS_App)
+  JS_STATIC_METHOD(popUpMenu, CJS_App)
+  JS_STATIC_METHOD(response, CJS_App)
+  JS_STATIC_METHOD(setInterval, CJS_App)
+  JS_STATIC_METHOD(setTimeOut, CJS_App)
 
  private:
   static int ObjDefnID;
diff --git a/fxjs/cjs_color.h b/fxjs/cjs_color.h
index cb9384d..03aa735 100644
--- a/fxjs/cjs_color.h
+++ b/fxjs/cjs_color.h
@@ -24,21 +24,21 @@
   CJS_Color(v8::Local<v8::Object> pObject, CJS_Runtime* pRuntime);
   ~CJS_Color() override;
 
-  JS_STATIC_PROP(black, black, CJS_Color);
-  JS_STATIC_PROP(blue, blue, CJS_Color);
-  JS_STATIC_PROP(cyan, cyan, CJS_Color);
-  JS_STATIC_PROP(dkGray, dark_gray, CJS_Color);
-  JS_STATIC_PROP(gray, gray, CJS_Color);
-  JS_STATIC_PROP(green, green, CJS_Color);
-  JS_STATIC_PROP(ltGray, light_gray, CJS_Color);
-  JS_STATIC_PROP(magenta, magenta, CJS_Color);
-  JS_STATIC_PROP(red, red, CJS_Color);
-  JS_STATIC_PROP(transparent, transparent, CJS_Color);
-  JS_STATIC_PROP(white, white, CJS_Color);
-  JS_STATIC_PROP(yellow, yellow, CJS_Color);
+  JS_STATIC_PROP(black, black, CJS_Color)
+  JS_STATIC_PROP(blue, blue, CJS_Color)
+  JS_STATIC_PROP(cyan, cyan, CJS_Color)
+  JS_STATIC_PROP(dkGray, dark_gray, CJS_Color)
+  JS_STATIC_PROP(gray, gray, CJS_Color)
+  JS_STATIC_PROP(green, green, CJS_Color)
+  JS_STATIC_PROP(ltGray, light_gray, CJS_Color)
+  JS_STATIC_PROP(magenta, magenta, CJS_Color)
+  JS_STATIC_PROP(red, red, CJS_Color)
+  JS_STATIC_PROP(transparent, transparent, CJS_Color)
+  JS_STATIC_PROP(white, white, CJS_Color)
+  JS_STATIC_PROP(yellow, yellow, CJS_Color)
 
-  JS_STATIC_METHOD(convert, CJS_Color);
-  JS_STATIC_METHOD(equal, CJS_Color);
+  JS_STATIC_METHOD(convert, CJS_Color)
+  JS_STATIC_METHOD(equal, CJS_Color)
 
  private:
   static int ObjDefnID;
diff --git a/fxjs/cjs_console.h b/fxjs/cjs_console.h
index bdf8d51..2bc118a 100644
--- a/fxjs/cjs_console.h
+++ b/fxjs/cjs_console.h
@@ -20,10 +20,10 @@
   CJS_Console(v8::Local<v8::Object> pObject, CJS_Runtime* pRuntime);
   ~CJS_Console() override;
 
-  JS_STATIC_METHOD(clear, CJS_Console);
-  JS_STATIC_METHOD(hide, CJS_Console);
-  JS_STATIC_METHOD(println, CJS_Console);
-  JS_STATIC_METHOD(show, CJS_Console);
+  JS_STATIC_METHOD(clear, CJS_Console)
+  JS_STATIC_METHOD(hide, CJS_Console)
+  JS_STATIC_METHOD(println, CJS_Console)
+  JS_STATIC_METHOD(show, CJS_Console)
 
  private:
   static int ObjDefnID;
diff --git a/fxjs/cjs_document.h b/fxjs/cjs_document.h
index 7072dfe..f4eab26 100644
--- a/fxjs/cjs_document.h
+++ b/fxjs/cjs_document.h
@@ -35,81 +35,81 @@
   void AddDelayData(std::unique_ptr<CJS_DelayData> pData);
   void DoFieldDelay(const WideString& sFieldName, int nControlIndex);
 
-  JS_STATIC_PROP(ADBE, ADBE, CJS_Document);
-  JS_STATIC_PROP(author, author, CJS_Document);
-  JS_STATIC_PROP(baseURL, base_URL, CJS_Document);
-  JS_STATIC_PROP(bookmarkRoot, bookmark_root, CJS_Document);
-  JS_STATIC_PROP(calculate, calculate, CJS_Document);
-  JS_STATIC_PROP(Collab, collab, CJS_Document);
-  JS_STATIC_PROP(creationDate, creation_date, CJS_Document);
-  JS_STATIC_PROP(creator, creator, CJS_Document);
-  JS_STATIC_PROP(delay, delay, CJS_Document);
-  JS_STATIC_PROP(dirty, dirty, CJS_Document);
-  JS_STATIC_PROP(documentFileName, document_file_name, CJS_Document);
-  JS_STATIC_PROP(external, external, CJS_Document);
-  JS_STATIC_PROP(filesize, filesize, CJS_Document);
-  JS_STATIC_PROP(icons, icons, CJS_Document);
-  JS_STATIC_PROP(info, info, CJS_Document);
-  JS_STATIC_PROP(keywords, keywords, CJS_Document);
-  JS_STATIC_PROP(layout, layout, CJS_Document);
-  JS_STATIC_PROP(media, media, CJS_Document);
-  JS_STATIC_PROP(modDate, mod_date, CJS_Document);
-  JS_STATIC_PROP(mouseX, mouse_x, CJS_Document);
-  JS_STATIC_PROP(mouseY, mouse_y, CJS_Document);
-  JS_STATIC_PROP(numFields, num_fields, CJS_Document);
-  JS_STATIC_PROP(numPages, num_pages, CJS_Document);
-  JS_STATIC_PROP(pageNum, page_num, CJS_Document);
-  JS_STATIC_PROP(pageWindowRect, page_window_rect, CJS_Document);
-  JS_STATIC_PROP(path, path, CJS_Document);
-  JS_STATIC_PROP(producer, producer, CJS_Document);
-  JS_STATIC_PROP(subject, subject, CJS_Document);
-  JS_STATIC_PROP(title, title, CJS_Document);
-  JS_STATIC_PROP(URL, URL, CJS_Document);
-  JS_STATIC_PROP(zoom, zoom, CJS_Document);
-  JS_STATIC_PROP(zoomType, zoom_type, CJS_Document);
+  JS_STATIC_PROP(ADBE, ADBE, CJS_Document)
+  JS_STATIC_PROP(author, author, CJS_Document)
+  JS_STATIC_PROP(baseURL, base_URL, CJS_Document)
+  JS_STATIC_PROP(bookmarkRoot, bookmark_root, CJS_Document)
+  JS_STATIC_PROP(calculate, calculate, CJS_Document)
+  JS_STATIC_PROP(Collab, collab, CJS_Document)
+  JS_STATIC_PROP(creationDate, creation_date, CJS_Document)
+  JS_STATIC_PROP(creator, creator, CJS_Document)
+  JS_STATIC_PROP(delay, delay, CJS_Document)
+  JS_STATIC_PROP(dirty, dirty, CJS_Document)
+  JS_STATIC_PROP(documentFileName, document_file_name, CJS_Document)
+  JS_STATIC_PROP(external, external, CJS_Document)
+  JS_STATIC_PROP(filesize, filesize, CJS_Document)
+  JS_STATIC_PROP(icons, icons, CJS_Document)
+  JS_STATIC_PROP(info, info, CJS_Document)
+  JS_STATIC_PROP(keywords, keywords, CJS_Document)
+  JS_STATIC_PROP(layout, layout, CJS_Document)
+  JS_STATIC_PROP(media, media, CJS_Document)
+  JS_STATIC_PROP(modDate, mod_date, CJS_Document)
+  JS_STATIC_PROP(mouseX, mouse_x, CJS_Document)
+  JS_STATIC_PROP(mouseY, mouse_y, CJS_Document)
+  JS_STATIC_PROP(numFields, num_fields, CJS_Document)
+  JS_STATIC_PROP(numPages, num_pages, CJS_Document)
+  JS_STATIC_PROP(pageNum, page_num, CJS_Document)
+  JS_STATIC_PROP(pageWindowRect, page_window_rect, CJS_Document)
+  JS_STATIC_PROP(path, path, CJS_Document)
+  JS_STATIC_PROP(producer, producer, CJS_Document)
+  JS_STATIC_PROP(subject, subject, CJS_Document)
+  JS_STATIC_PROP(title, title, CJS_Document)
+  JS_STATIC_PROP(URL, URL, CJS_Document)
+  JS_STATIC_PROP(zoom, zoom, CJS_Document)
+  JS_STATIC_PROP(zoomType, zoom_type, CJS_Document)
 
-  JS_STATIC_METHOD(addAnnot, CJS_Document);
-  JS_STATIC_METHOD(addField, CJS_Document);
-  JS_STATIC_METHOD(addLink, CJS_Document);
-  JS_STATIC_METHOD(addIcon, CJS_Document);
-  JS_STATIC_METHOD(calculateNow, CJS_Document);
-  JS_STATIC_METHOD(closeDoc, CJS_Document);
-  JS_STATIC_METHOD(createDataObject, CJS_Document);
-  JS_STATIC_METHOD(deletePages, CJS_Document);
-  JS_STATIC_METHOD(exportAsText, CJS_Document);
-  JS_STATIC_METHOD(exportAsFDF, CJS_Document);
-  JS_STATIC_METHOD(exportAsXFDF, CJS_Document);
-  JS_STATIC_METHOD(extractPages, CJS_Document);
-  JS_STATIC_METHOD(getAnnot, CJS_Document);
-  JS_STATIC_METHOD(getAnnots, CJS_Document);
-  JS_STATIC_METHOD(getAnnot3D, CJS_Document);
-  JS_STATIC_METHOD(getAnnots3D, CJS_Document);
-  JS_STATIC_METHOD(getField, CJS_Document);
-  JS_STATIC_METHOD(getIcon, CJS_Document);
-  JS_STATIC_METHOD(getLinks, CJS_Document);
-  JS_STATIC_METHOD(getNthFieldName, CJS_Document);
-  JS_STATIC_METHOD(getOCGs, CJS_Document);
-  JS_STATIC_METHOD(getPageBox, CJS_Document);
-  JS_STATIC_METHOD(getPageNthWord, CJS_Document);
-  JS_STATIC_METHOD(getPageNthWordQuads, CJS_Document);
-  JS_STATIC_METHOD(getPageNumWords, CJS_Document);
-  JS_STATIC_METHOD(getPrintParams, CJS_Document);
-  JS_STATIC_METHOD(getURL, CJS_Document);
-  JS_STATIC_METHOD(gotoNamedDest, CJS_Document);
-  JS_STATIC_METHOD(importAnFDF, CJS_Document);
-  JS_STATIC_METHOD(importAnXFDF, CJS_Document);
-  JS_STATIC_METHOD(importTextData, CJS_Document);
-  JS_STATIC_METHOD(insertPages, CJS_Document);
-  JS_STATIC_METHOD(mailDoc, CJS_Document);
-  JS_STATIC_METHOD(mailForm, CJS_Document);
-  JS_STATIC_METHOD(print, CJS_Document);
-  JS_STATIC_METHOD(removeField, CJS_Document);
-  JS_STATIC_METHOD(replacePages, CJS_Document);
-  JS_STATIC_METHOD(removeIcon, CJS_Document);
-  JS_STATIC_METHOD(resetForm, CJS_Document);
-  JS_STATIC_METHOD(saveAs, CJS_Document);
-  JS_STATIC_METHOD(submitForm, CJS_Document);
-  JS_STATIC_METHOD(syncAnnotScan, CJS_Document);
+  JS_STATIC_METHOD(addAnnot, CJS_Document)
+  JS_STATIC_METHOD(addField, CJS_Document)
+  JS_STATIC_METHOD(addLink, CJS_Document)
+  JS_STATIC_METHOD(addIcon, CJS_Document)
+  JS_STATIC_METHOD(calculateNow, CJS_Document)
+  JS_STATIC_METHOD(closeDoc, CJS_Document)
+  JS_STATIC_METHOD(createDataObject, CJS_Document)
+  JS_STATIC_METHOD(deletePages, CJS_Document)
+  JS_STATIC_METHOD(exportAsText, CJS_Document)
+  JS_STATIC_METHOD(exportAsFDF, CJS_Document)
+  JS_STATIC_METHOD(exportAsXFDF, CJS_Document)
+  JS_STATIC_METHOD(extractPages, CJS_Document)
+  JS_STATIC_METHOD(getAnnot, CJS_Document)
+  JS_STATIC_METHOD(getAnnots, CJS_Document)
+  JS_STATIC_METHOD(getAnnot3D, CJS_Document)
+  JS_STATIC_METHOD(getAnnots3D, CJS_Document)
+  JS_STATIC_METHOD(getField, CJS_Document)
+  JS_STATIC_METHOD(getIcon, CJS_Document)
+  JS_STATIC_METHOD(getLinks, CJS_Document)
+  JS_STATIC_METHOD(getNthFieldName, CJS_Document)
+  JS_STATIC_METHOD(getOCGs, CJS_Document)
+  JS_STATIC_METHOD(getPageBox, CJS_Document)
+  JS_STATIC_METHOD(getPageNthWord, CJS_Document)
+  JS_STATIC_METHOD(getPageNthWordQuads, CJS_Document)
+  JS_STATIC_METHOD(getPageNumWords, CJS_Document)
+  JS_STATIC_METHOD(getPrintParams, CJS_Document)
+  JS_STATIC_METHOD(getURL, CJS_Document)
+  JS_STATIC_METHOD(gotoNamedDest, CJS_Document)
+  JS_STATIC_METHOD(importAnFDF, CJS_Document)
+  JS_STATIC_METHOD(importAnXFDF, CJS_Document)
+  JS_STATIC_METHOD(importTextData, CJS_Document)
+  JS_STATIC_METHOD(insertPages, CJS_Document)
+  JS_STATIC_METHOD(mailDoc, CJS_Document)
+  JS_STATIC_METHOD(mailForm, CJS_Document)
+  JS_STATIC_METHOD(print, CJS_Document)
+  JS_STATIC_METHOD(removeField, CJS_Document)
+  JS_STATIC_METHOD(replacePages, CJS_Document)
+  JS_STATIC_METHOD(removeIcon, CJS_Document)
+  JS_STATIC_METHOD(resetForm, CJS_Document)
+  JS_STATIC_METHOD(saveAs, CJS_Document)
+  JS_STATIC_METHOD(submitForm, CJS_Document)
+  JS_STATIC_METHOD(syncAnnotScan, CJS_Document)
 
  private:
   static int ObjDefnID;
diff --git a/fxjs/cjs_event.h b/fxjs/cjs_event.h
index 4b55788..b2fa4dc 100644
--- a/fxjs/cjs_event.h
+++ b/fxjs/cjs_event.h
@@ -18,26 +18,26 @@
   CJS_Event(v8::Local<v8::Object> pObject, CJS_Runtime* pRuntime);
   ~CJS_Event() override;
 
-  JS_STATIC_PROP(change, change, CJS_Event);
-  JS_STATIC_PROP(changeEx, change_ex, CJS_Event);
-  JS_STATIC_PROP(commitKey, commit_key, CJS_Event);
-  JS_STATIC_PROP(fieldFull, field_full, CJS_Event);
-  JS_STATIC_PROP(keyDown, key_down, CJS_Event);
-  JS_STATIC_PROP(modifier, modifier, CJS_Event);
-  JS_STATIC_PROP(name, name, CJS_Event);
-  JS_STATIC_PROP(rc, rc, CJS_Event);
-  JS_STATIC_PROP(richChange, rich_change, CJS_Event);
-  JS_STATIC_PROP(richChangeEx, rich_change_ex, CJS_Event);
-  JS_STATIC_PROP(richValue, rich_value, CJS_Event);
-  JS_STATIC_PROP(selEnd, sel_end, CJS_Event);
-  JS_STATIC_PROP(selStart, sel_start, CJS_Event);
-  JS_STATIC_PROP(shift, shift, CJS_Event);
-  JS_STATIC_PROP(source, source, CJS_Event);
-  JS_STATIC_PROP(target, target, CJS_Event);
-  JS_STATIC_PROP(targetName, target_name, CJS_Event);
-  JS_STATIC_PROP(type, type, CJS_Event);
-  JS_STATIC_PROP(value, value, CJS_Event);
-  JS_STATIC_PROP(willCommit, will_commit, CJS_Event);
+  JS_STATIC_PROP(change, change, CJS_Event)
+  JS_STATIC_PROP(changeEx, change_ex, CJS_Event)
+  JS_STATIC_PROP(commitKey, commit_key, CJS_Event)
+  JS_STATIC_PROP(fieldFull, field_full, CJS_Event)
+  JS_STATIC_PROP(keyDown, key_down, CJS_Event)
+  JS_STATIC_PROP(modifier, modifier, CJS_Event)
+  JS_STATIC_PROP(name, name, CJS_Event)
+  JS_STATIC_PROP(rc, rc, CJS_Event)
+  JS_STATIC_PROP(richChange, rich_change, CJS_Event)
+  JS_STATIC_PROP(richChangeEx, rich_change_ex, CJS_Event)
+  JS_STATIC_PROP(richValue, rich_value, CJS_Event)
+  JS_STATIC_PROP(selEnd, sel_end, CJS_Event)
+  JS_STATIC_PROP(selStart, sel_start, CJS_Event)
+  JS_STATIC_PROP(shift, shift, CJS_Event)
+  JS_STATIC_PROP(source, source, CJS_Event)
+  JS_STATIC_PROP(target, target, CJS_Event)
+  JS_STATIC_PROP(targetName, target_name, CJS_Event)
+  JS_STATIC_PROP(type, type, CJS_Event)
+  JS_STATIC_PROP(value, value, CJS_Event)
+  JS_STATIC_PROP(willCommit, will_commit, CJS_Event)
 
  private:
   static int ObjDefnID;
diff --git a/fxjs/cjs_field.h b/fxjs/cjs_field.h
index 20d8c95..45d0f06 100644
--- a/fxjs/cjs_field.h
+++ b/fxjs/cjs_field.h
@@ -40,85 +40,85 @@
 
   bool AttachField(CJS_Document* pDocument, const WideString& csFieldName);
 
-  JS_STATIC_PROP(alignment, alignment, CJS_Field);
-  JS_STATIC_PROP(borderStyle, border_style, CJS_Field);
-  JS_STATIC_PROP(buttonAlignX, button_align_x, CJS_Field);
-  JS_STATIC_PROP(buttonAlignY, button_align_y, CJS_Field);
-  JS_STATIC_PROP(buttonFitBounds, button_fit_bounds, CJS_Field);
-  JS_STATIC_PROP(buttonPosition, button_position, CJS_Field);
-  JS_STATIC_PROP(buttonScaleHow, button_scale_how, CJS_Field);
-  JS_STATIC_PROP(ButtonScaleWhen, button_scale_when, CJS_Field);
-  JS_STATIC_PROP(calcOrderIndex, calc_order_index, CJS_Field);
-  JS_STATIC_PROP(charLimit, char_limit, CJS_Field);
-  JS_STATIC_PROP(comb, comb, CJS_Field);
-  JS_STATIC_PROP(commitOnSelChange, commit_on_sel_change, CJS_Field);
-  JS_STATIC_PROP(currentValueIndices, current_value_indices, CJS_Field);
-  JS_STATIC_PROP(defaultStyle, default_style, CJS_Field);
-  JS_STATIC_PROP(defaultValue, default_value, CJS_Field);
-  JS_STATIC_PROP(doNotScroll, do_not_scroll, CJS_Field);
-  JS_STATIC_PROP(doNotSpellCheck, do_not_spell_check, CJS_Field);
-  JS_STATIC_PROP(delay, delay, CJS_Field);
-  JS_STATIC_PROP(display, display, CJS_Field);
-  JS_STATIC_PROP(doc, doc, CJS_Field);
-  JS_STATIC_PROP(editable, editable, CJS_Field);
-  JS_STATIC_PROP(exportValues, export_values, CJS_Field);
-  JS_STATIC_PROP(fileSelect, file_select, CJS_Field);
-  JS_STATIC_PROP(fillColor, fill_color, CJS_Field);
-  JS_STATIC_PROP(hidden, hidden, CJS_Field);
-  JS_STATIC_PROP(highlight, highlight, CJS_Field);
-  JS_STATIC_PROP(lineWidth, line_width, CJS_Field);
-  JS_STATIC_PROP(multiline, multiline, CJS_Field);
-  JS_STATIC_PROP(multipleSelection, multiple_selection, CJS_Field);
-  JS_STATIC_PROP(name, name, CJS_Field);
-  JS_STATIC_PROP(numItems, num_items, CJS_Field);
-  JS_STATIC_PROP(page, page, CJS_Field);
-  JS_STATIC_PROP(password, password, CJS_Field);
-  JS_STATIC_PROP(print, print, CJS_Field);
-  JS_STATIC_PROP(radiosInUnison, radios_in_unison, CJS_Field);
-  JS_STATIC_PROP(readonly, readonly, CJS_Field);
-  JS_STATIC_PROP(rect, rect, CJS_Field);
-  JS_STATIC_PROP(required, required, CJS_Field);
-  JS_STATIC_PROP(richText, rich_text, CJS_Field);
-  JS_STATIC_PROP(richValue, rich_value, CJS_Field);
-  JS_STATIC_PROP(rotation, rotation, CJS_Field);
-  JS_STATIC_PROP(source, source, CJS_Field);
-  JS_STATIC_PROP(strokeColor, stroke_color, CJS_Field);
-  JS_STATIC_PROP(style, style, CJS_Field);
-  JS_STATIC_PROP(submitName, submit_name, CJS_Field);
-  JS_STATIC_PROP(textColor, text_color, CJS_Field);
-  JS_STATIC_PROP(textFont, text_font, CJS_Field);
-  JS_STATIC_PROP(textSize, text_size, CJS_Field);
-  JS_STATIC_PROP(type, type, CJS_Field);
-  JS_STATIC_PROP(userName, user_name, CJS_Field);
-  JS_STATIC_PROP(value, value, CJS_Field);
-  JS_STATIC_PROP(valueAsString, value_as_string, CJS_Field);
+  JS_STATIC_PROP(alignment, alignment, CJS_Field)
+  JS_STATIC_PROP(borderStyle, border_style, CJS_Field)
+  JS_STATIC_PROP(buttonAlignX, button_align_x, CJS_Field)
+  JS_STATIC_PROP(buttonAlignY, button_align_y, CJS_Field)
+  JS_STATIC_PROP(buttonFitBounds, button_fit_bounds, CJS_Field)
+  JS_STATIC_PROP(buttonPosition, button_position, CJS_Field)
+  JS_STATIC_PROP(buttonScaleHow, button_scale_how, CJS_Field)
+  JS_STATIC_PROP(ButtonScaleWhen, button_scale_when, CJS_Field)
+  JS_STATIC_PROP(calcOrderIndex, calc_order_index, CJS_Field)
+  JS_STATIC_PROP(charLimit, char_limit, CJS_Field)
+  JS_STATIC_PROP(comb, comb, CJS_Field)
+  JS_STATIC_PROP(commitOnSelChange, commit_on_sel_change, CJS_Field)
+  JS_STATIC_PROP(currentValueIndices, current_value_indices, CJS_Field)
+  JS_STATIC_PROP(defaultStyle, default_style, CJS_Field)
+  JS_STATIC_PROP(defaultValue, default_value, CJS_Field)
+  JS_STATIC_PROP(doNotScroll, do_not_scroll, CJS_Field)
+  JS_STATIC_PROP(doNotSpellCheck, do_not_spell_check, CJS_Field)
+  JS_STATIC_PROP(delay, delay, CJS_Field)
+  JS_STATIC_PROP(display, display, CJS_Field)
+  JS_STATIC_PROP(doc, doc, CJS_Field)
+  JS_STATIC_PROP(editable, editable, CJS_Field)
+  JS_STATIC_PROP(exportValues, export_values, CJS_Field)
+  JS_STATIC_PROP(fileSelect, file_select, CJS_Field)
+  JS_STATIC_PROP(fillColor, fill_color, CJS_Field)
+  JS_STATIC_PROP(hidden, hidden, CJS_Field)
+  JS_STATIC_PROP(highlight, highlight, CJS_Field)
+  JS_STATIC_PROP(lineWidth, line_width, CJS_Field)
+  JS_STATIC_PROP(multiline, multiline, CJS_Field)
+  JS_STATIC_PROP(multipleSelection, multiple_selection, CJS_Field)
+  JS_STATIC_PROP(name, name, CJS_Field)
+  JS_STATIC_PROP(numItems, num_items, CJS_Field)
+  JS_STATIC_PROP(page, page, CJS_Field)
+  JS_STATIC_PROP(password, password, CJS_Field)
+  JS_STATIC_PROP(print, print, CJS_Field)
+  JS_STATIC_PROP(radiosInUnison, radios_in_unison, CJS_Field)
+  JS_STATIC_PROP(readonly, readonly, CJS_Field)
+  JS_STATIC_PROP(rect, rect, CJS_Field)
+  JS_STATIC_PROP(required, required, CJS_Field)
+  JS_STATIC_PROP(richText, rich_text, CJS_Field)
+  JS_STATIC_PROP(richValue, rich_value, CJS_Field)
+  JS_STATIC_PROP(rotation, rotation, CJS_Field)
+  JS_STATIC_PROP(source, source, CJS_Field)
+  JS_STATIC_PROP(strokeColor, stroke_color, CJS_Field)
+  JS_STATIC_PROP(style, style, CJS_Field)
+  JS_STATIC_PROP(submitName, submit_name, CJS_Field)
+  JS_STATIC_PROP(textColor, text_color, CJS_Field)
+  JS_STATIC_PROP(textFont, text_font, CJS_Field)
+  JS_STATIC_PROP(textSize, text_size, CJS_Field)
+  JS_STATIC_PROP(type, type, CJS_Field)
+  JS_STATIC_PROP(userName, user_name, CJS_Field)
+  JS_STATIC_PROP(value, value, CJS_Field)
+  JS_STATIC_PROP(valueAsString, value_as_string, CJS_Field)
 
-  JS_STATIC_METHOD(browseForFileToSubmit, CJS_Field);
-  JS_STATIC_METHOD(buttonGetCaption, CJS_Field);
-  JS_STATIC_METHOD(buttonGetIcon, CJS_Field);
-  JS_STATIC_METHOD(buttonImportIcon, CJS_Field);
-  JS_STATIC_METHOD(buttonSetCaption, CJS_Field);
-  JS_STATIC_METHOD(buttonSetIcon, CJS_Field);
-  JS_STATIC_METHOD(checkThisBox, CJS_Field);
-  JS_STATIC_METHOD(clearItems, CJS_Field);
-  JS_STATIC_METHOD(defaultIsChecked, CJS_Field);
-  JS_STATIC_METHOD(deleteItemAt, CJS_Field);
-  JS_STATIC_METHOD(getArray, CJS_Field);
-  JS_STATIC_METHOD(getItemAt, CJS_Field);
-  JS_STATIC_METHOD(getLock, CJS_Field);
-  JS_STATIC_METHOD(insertItemAt, CJS_Field);
-  JS_STATIC_METHOD(isBoxChecked, CJS_Field);
-  JS_STATIC_METHOD(isDefaultChecked, CJS_Field);
-  JS_STATIC_METHOD(setAction, CJS_Field);
-  JS_STATIC_METHOD(setFocus, CJS_Field);
-  JS_STATIC_METHOD(setItems, CJS_Field);
-  JS_STATIC_METHOD(setLock, CJS_Field);
-  JS_STATIC_METHOD(signatureGetModifications, CJS_Field);
-  JS_STATIC_METHOD(signatureGetSeedValue, CJS_Field);
-  JS_STATIC_METHOD(signatureInfo, CJS_Field);
-  JS_STATIC_METHOD(signatureSetSeedValue, CJS_Field);
-  JS_STATIC_METHOD(signatureSign, CJS_Field);
-  JS_STATIC_METHOD(signatureValidate, CJS_Field);
+  JS_STATIC_METHOD(browseForFileToSubmit, CJS_Field)
+  JS_STATIC_METHOD(buttonGetCaption, CJS_Field)
+  JS_STATIC_METHOD(buttonGetIcon, CJS_Field)
+  JS_STATIC_METHOD(buttonImportIcon, CJS_Field)
+  JS_STATIC_METHOD(buttonSetCaption, CJS_Field)
+  JS_STATIC_METHOD(buttonSetIcon, CJS_Field)
+  JS_STATIC_METHOD(checkThisBox, CJS_Field)
+  JS_STATIC_METHOD(clearItems, CJS_Field)
+  JS_STATIC_METHOD(defaultIsChecked, CJS_Field)
+  JS_STATIC_METHOD(deleteItemAt, CJS_Field)
+  JS_STATIC_METHOD(getArray, CJS_Field)
+  JS_STATIC_METHOD(getItemAt, CJS_Field)
+  JS_STATIC_METHOD(getLock, CJS_Field)
+  JS_STATIC_METHOD(insertItemAt, CJS_Field)
+  JS_STATIC_METHOD(isBoxChecked, CJS_Field)
+  JS_STATIC_METHOD(isDefaultChecked, CJS_Field)
+  JS_STATIC_METHOD(setAction, CJS_Field)
+  JS_STATIC_METHOD(setFocus, CJS_Field)
+  JS_STATIC_METHOD(setItems, CJS_Field)
+  JS_STATIC_METHOD(setLock, CJS_Field)
+  JS_STATIC_METHOD(signatureGetModifications, CJS_Field)
+  JS_STATIC_METHOD(signatureGetSeedValue, CJS_Field)
+  JS_STATIC_METHOD(signatureInfo, CJS_Field)
+  JS_STATIC_METHOD(signatureSetSeedValue, CJS_Field)
+  JS_STATIC_METHOD(signatureSign, CJS_Field)
+  JS_STATIC_METHOD(signatureValidate, CJS_Field)
 
   CJS_Result get_text_color(CJS_Runtime* pRuntime);
   CJS_Result set_text_color(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp);
diff --git a/fxjs/cjs_icon.h b/fxjs/cjs_icon.h
index 9c2d64a..321f508 100644
--- a/fxjs/cjs_icon.h
+++ b/fxjs/cjs_icon.h
@@ -21,7 +21,7 @@
   WideString GetIconName() const { return m_swIconName; }
   void SetIconName(WideString name) { m_swIconName = name; }
 
-  JS_STATIC_PROP(name, name, CJS_Icon);
+  JS_STATIC_PROP(name, name, CJS_Icon)
 
  private:
   static int ObjDefnID;
diff --git a/fxjs/cjs_publicmethods.cpp b/fxjs/cjs_publicmethods.cpp
index 125f2bb..4743739 100644
--- a/fxjs/cjs_publicmethods.cpp
+++ b/fxjs/cjs_publicmethods.cpp
@@ -229,28 +229,28 @@
     JSGlobalFunc<fun_name>(#fun_name, info);             \
   }
 
-JS_STATIC_GLOBAL_FUN(AFNumber_Format);
-JS_STATIC_GLOBAL_FUN(AFNumber_Keystroke);
-JS_STATIC_GLOBAL_FUN(AFPercent_Format);
-JS_STATIC_GLOBAL_FUN(AFPercent_Keystroke);
-JS_STATIC_GLOBAL_FUN(AFDate_FormatEx);
-JS_STATIC_GLOBAL_FUN(AFDate_KeystrokeEx);
-JS_STATIC_GLOBAL_FUN(AFDate_Format);
-JS_STATIC_GLOBAL_FUN(AFDate_Keystroke);
-JS_STATIC_GLOBAL_FUN(AFTime_FormatEx);
-JS_STATIC_GLOBAL_FUN(AFTime_KeystrokeEx);
-JS_STATIC_GLOBAL_FUN(AFTime_Format);
-JS_STATIC_GLOBAL_FUN(AFTime_Keystroke);
-JS_STATIC_GLOBAL_FUN(AFSpecial_Format);
-JS_STATIC_GLOBAL_FUN(AFSpecial_Keystroke);
-JS_STATIC_GLOBAL_FUN(AFSpecial_KeystrokeEx);
-JS_STATIC_GLOBAL_FUN(AFSimple);
-JS_STATIC_GLOBAL_FUN(AFMakeNumber);
-JS_STATIC_GLOBAL_FUN(AFSimple_Calculate);
-JS_STATIC_GLOBAL_FUN(AFRange_Validate);
-JS_STATIC_GLOBAL_FUN(AFMergeChange);
-JS_STATIC_GLOBAL_FUN(AFParseDateEx);
-JS_STATIC_GLOBAL_FUN(AFExtractNums);
+JS_STATIC_GLOBAL_FUN(AFNumber_Format)
+JS_STATIC_GLOBAL_FUN(AFNumber_Keystroke)
+JS_STATIC_GLOBAL_FUN(AFPercent_Format)
+JS_STATIC_GLOBAL_FUN(AFPercent_Keystroke)
+JS_STATIC_GLOBAL_FUN(AFDate_FormatEx)
+JS_STATIC_GLOBAL_FUN(AFDate_KeystrokeEx)
+JS_STATIC_GLOBAL_FUN(AFDate_Format)
+JS_STATIC_GLOBAL_FUN(AFDate_Keystroke)
+JS_STATIC_GLOBAL_FUN(AFTime_FormatEx)
+JS_STATIC_GLOBAL_FUN(AFTime_KeystrokeEx)
+JS_STATIC_GLOBAL_FUN(AFTime_Format)
+JS_STATIC_GLOBAL_FUN(AFTime_Keystroke)
+JS_STATIC_GLOBAL_FUN(AFSpecial_Format)
+JS_STATIC_GLOBAL_FUN(AFSpecial_Keystroke)
+JS_STATIC_GLOBAL_FUN(AFSpecial_KeystrokeEx)
+JS_STATIC_GLOBAL_FUN(AFSimple)
+JS_STATIC_GLOBAL_FUN(AFMakeNumber)
+JS_STATIC_GLOBAL_FUN(AFSimple_Calculate)
+JS_STATIC_GLOBAL_FUN(AFRange_Validate)
+JS_STATIC_GLOBAL_FUN(AFMergeChange)
+JS_STATIC_GLOBAL_FUN(AFParseDateEx)
+JS_STATIC_GLOBAL_FUN(AFExtractNums)
 
 bool CJS_PublicMethods::IsNumber(const WideString& str) {
   WideString sTrim = StrTrim(str);
diff --git a/fxjs/cjs_util.h b/fxjs/cjs_util.h
index 87fd263..3339ce7 100644
--- a/fxjs/cjs_util.h
+++ b/fxjs/cjs_util.h
@@ -31,11 +31,11 @@
   static WideString StringPrintx(const WideString& cFormat,
                                  const WideString& cSource);
 
-  JS_STATIC_METHOD(printd, CJS_Util);
-  JS_STATIC_METHOD(printf, CJS_Util);
-  JS_STATIC_METHOD(printx, CJS_Util);
-  JS_STATIC_METHOD(scand, CJS_Util);
-  JS_STATIC_METHOD(byteToChar, CJS_Util);
+  JS_STATIC_METHOD(printd, CJS_Util)
+  JS_STATIC_METHOD(printf, CJS_Util)
+  JS_STATIC_METHOD(printx, CJS_Util)
+  JS_STATIC_METHOD(scand, CJS_Util)
+  JS_STATIC_METHOD(byteToChar, CJS_Util)
 
  private:
   static int ObjDefnID;
diff --git a/third_party/bigint/BigInteger.hh b/third_party/bigint/BigInteger.hh
index 320a22f..35a2b6b 100644
--- a/third_party/bigint/BigInteger.hh
+++ b/third_party/bigint/BigInteger.hh
@@ -38,7 +38,7 @@
 	BigInteger() : sign(zero), mag() {}
 
 	// Copy constructor
-	BigInteger(const BigInteger &x) : sign(x.sign), mag(x.mag) {};
+	BigInteger(const BigInteger &x) : sign(x.sign), mag(x.mag) {}
 
 	// Assignment operator
 	void operator=(const BigInteger &x);
@@ -103,7 +103,7 @@
 	bool operator ==(const BigInteger &x) const {
 		return sign == x.sign && mag == x.mag;
 	}
-	bool operator !=(const BigInteger &x) const { return !operator ==(x); };
+	bool operator !=(const BigInteger &x) const { return !operator ==(x); }
 	bool operator < (const BigInteger &x) const { return compareTo(x) == less   ; }
 	bool operator <=(const BigInteger &x) const { return compareTo(x) != greater; }
 	bool operator >=(const BigInteger &x) const { return compareTo(x) != less   ; }
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp
index 7540213..0d0b7f5 100644
--- a/xfa/fgas/font/cfgas_fontmgr.cpp
+++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -357,7 +357,7 @@
 
 void ftStreamClose(FXFT_Stream stream) {}
 
-};  // extern "C"
+}  // extern "C"
 
 // TODO(thestig): Pass in |name_table| as a std::vector?
 std::vector<WideString> GetNames(const uint8_t* name_table) {
