diff --git a/CHANGES.md b/CHANGES.md
index 92f6d7b2f5..82d853a84e 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -15,6 +15,7 @@ These changes should be for the better and should not be super noticeable but if
Grammars:
+- enh(arcade) updated to ArcGIS Arcade version 1.16 [John Foster][]
- enh(php) Left and right-side of double colon [Wojciech Kania][]
- enh(php) add PHP constants [Wojciech Kania][]
- enh(php) add PHP 8.1 keywords [Wojciech Kania][]
@@ -57,6 +58,7 @@ Themes:
- Modified background color in css for Gradient Light and Gradient Dark themes [Samia Ali][]
+[John Foster]: https://github.com/jf990
[Pegasis]: https://github.com/PegasisForever
[Wojciech Kania]: https://github.com/wkania
[Jeylani B]: https://github.com/jeyllani
diff --git a/src/languages/arcade.js b/src/languages/arcade.js
index 579d5b475a..6de745189d 100644
--- a/src/languages/arcade.js
+++ b/src/languages/arcade.js
@@ -42,14 +42,18 @@ export default function(hljs) {
built_in: [
"Abs",
"Acos",
+ "All",
"Angle",
- "Attachments",
+ "Any",
"Area",
"AreaGeodetic",
+ "Array",
"Asin",
"Atan",
"Atan2",
+ "Attachments",
"Average",
+ "Back",
"Bearing",
"Boolean",
"Buffer",
@@ -57,9 +61,11 @@ export default function(hljs) {
"Ceil",
"Centroid",
"Clip",
+ "Concatenate",
"Console",
"Constrain",
"Contains",
+ "ConvertDirection",
"Cos",
"Count",
"Crosses",
@@ -70,45 +76,71 @@ export default function(hljs) {
"Day",
"Decode",
"DefaultValue",
+ "Densify",
+ "DensifyGeodetic",
"Dictionary",
"Difference",
"Disjoint",
"Distance",
"DistanceGeodetic",
"Distinct",
+ "Domain",
"DomainCode",
"DomainName",
+ "EnvelopeIntersects",
"Equals",
+ "Erase",
"Exp",
+ "Expects",
"Extent",
"Feature",
"FeatureSet",
"FeatureSetByAssociation",
"FeatureSetById",
+ "FeatureSetByName",
"FeatureSetByPortalItem",
"FeatureSetByRelationshipName",
- "FeatureSetByTitle",
- "FeatureSetByUrl",
"Filter",
+ "Find",
"First",
"Floor",
+ "FromCharCode",
+ "FromCodePoint",
+ "FromJSON",
+ "GdbVersion",
+ "Generalize",
"Geometry",
+ "GetFeatureSet",
+ "GetUser",
"GroupBy",
"Guid",
+ "Hash",
"HasKey",
"Hour",
"IIf",
+ "Includes",
"IndexOf",
+ "Insert",
"Intersection",
"Intersects",
"IsEmpty",
"IsNan",
+ "ISOMonth",
+ "ISOWeek",
+ "ISOWeekday",
+ "ISOYear",
"IsSelfIntersecting",
+ "IsSimple",
+ "Left|0",
"Length",
+ "Length3D",
"LengthGeodetic",
"Log",
+ "Lower",
+ "Map",
"Max",
"Mean",
+ "Mid",
"Millisecond",
"Min",
"Minute",
@@ -116,45 +148,80 @@ export default function(hljs) {
"MultiPartToSinglePart",
"Multipoint",
"NextSequenceValue",
+ "None",
"Now",
"Number",
+ "Offset|0",
"OrderBy",
"Overlaps",
"Point",
"Polygon",
"Polyline",
+ "Pop",
"Portal",
"Pow",
+ "Proper",
+ "Push",
"Random",
+ "Reduce",
"Relate",
+ "Replace",
+ "Resize",
"Reverse",
- "RingIsClockWise",
+ "Right|0",
+ "RingIsClockwise",
+ "Rotate",
"Round",
+ "Schema",
"Second",
"SetGeometry",
+ "Simplify",
"Sin",
+ "Slice",
"Sort",
+ "Splice",
+ "Split",
"Sqrt",
"Stdev",
+ "SubtypeCode",
+ "SubtypeName",
+ "Subtypes",
"Sum",
"SymmetricDifference",
"Tan",
"Text",
"Timestamp",
+ "ToCharCode",
+ "ToCodePoint",
"Today",
+ "ToHex",
"ToLocal",
- "Top",
+ "Top|0",
"Touches",
"ToUTC",
+ "TrackAccelerationAt",
+ "TrackAccelerationWindow",
+ "TrackCurrentAcceleration",
+ "TrackCurrentDistance",
+ "TrackCurrentSpeed",
"TrackCurrentTime",
+ "TrackDistanceAt",
+ "TrackDistanceWindow",
+ "TrackDuration",
+ "TrackFieldWindow",
"TrackGeometryWindow",
"TrackIndex",
+ "TrackSpeedAt",
+ "TrackSpeedWindow",
"TrackStartTime",
"TrackWindow",
+ "Trim",
"TypeOf",
"Union",
+ "Upper",
"UrlEncode",
"Variance",
+ "Week",
"Weekday",
"When",
"Within",
@@ -204,6 +271,7 @@ export default function(hljs) {
return {
name: 'ArcGIS Arcade',
+ case_insensitive: true,
keywords: KEYWORDS,
contains: [
hljs.APOS_STRING_MODE,
diff --git a/test/markup/arcade/profile.expect.txt b/test/markup/arcade/profile.expect.txt
index d4a9dce5f2..f30c09e4b6 100644
--- a/test/markup/arcade/profile.expect.txt
+++ b/test/markup/arcade/profile.expect.txt
@@ -3,7 +3,7 @@
*/
function offsetPopulation(offset){
var popDensity = Round( $feature.POPULATION / AreaGeodetic(Geometry($feature), "square-kilometers") );
- var geom = Geometry({ 'x': offset.x, 'y': offset.y, 'spatialReference':{'wkid':102100} });
+ var geom = Geometry({ 'x': offset.x, 'y': offset.y, 'spatialReference':{'wkid':102100} });
var myLayer = FeatureSet($map, ["POPULATION", "ELECTION-DATA"]);
return popDensity;
}