First clone livebook and apply the following diff (time of writing commit 973fc51c9d5cdcc8863016de0cf9127add0a90fb)
diff --git a/assets/js/app.js b/assets/js/app.js
index 5742422..bf6bd2f 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -20,6 +20,7 @@ import VirtualizedLines from "./virtualized_lines";
import UserForm from "./user_form";
import EditorSettings from "./editor_settings";
import VegaLite from "./vega_lite";
+import Canvas from "./canvas";
import Timer from "./timer";
import MarkdownRenderer from "./markdown_renderer";
import Highlight from "./highlight";
@@ -39,6 +40,7 @@ const hooks = {
UserForm,
EditorSettings,
VegaLite,
+ Canvas,
Timer,
MarkdownRenderer,
Highlight,
diff --git a/assets/js/canvas.js b/assets/js/canvas.js
new file mode 100644
index 0000000..3622f6d
--- /dev/null
+++ b/assets/js/canvas.js
@@ -0,0 +1,89 @@
+import { getAttributeOrThrow, getAttributeOrDefault } from "./lib/attribute";
+
+/**
+ * A hook used to render graphics according to the given
+ * context ops list
+ *
+ * The hook expects a `canvas:<id>:init` event with `{ ops }` payload,
+ * where `ops` is a list of functions and args to call on the CanvasRenderingContext2d
+ * [["fillRect", [130, 190,40,60]]..]
+ * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D
+ *
+ * Later `canvas:<id>:push` events may be sent with more `{ ops }` payload,
+ * to dynamically update the canbas.
+ *
+ * Configuration:
+ *
+ * * `data-id` - canvas id
+ *
+ */
+const Canvas = {
+ mounted() {
+ this.props = getProps(this);
+ this.state = {
+ canvas: null,
+ ctx: null
+ };
+
+ this.state.canvas = document.createElement("canvas");
+ this.state.canvas.setAttribute("id", this.props.id);
+ this.state.canvas.setAttribute("width", this.props.width)
+ this.state.canvas.setAttribute("height", this.props.height)
+ this.el.appendChild(this.state.canvas);
+
+
+ this.state.ctx = this.state.canvas.getContext('2d');
+ const applyOps = ctxOperator(this.state.ctx)
+
+ this.handleEvent(`canvas:${this.props.id}:init`, ({ ops }) => {
+ applyOps(ops)
+ });
+
+ this.handleEvent(`canvas:${this.props.id}:push`, ({ ops }) => {
+ applyOps(ops)
+ });
+ },
+
+ updated() {
+ this.props = getProps(this);
+ this.state.canvas.setAttribute("width", this.props.width);
+ this.state.canvas.setAttribute("height", this.props.height);
+ },
+
+ destroyed() {
+ if (this.state.viewPromise) {
+ this.state.viewPromise.then((view) => view.finalize());
+ }
+ },
+};
+
+function ctxOperator(ctx) {
+ return function(ops) {
+ for (const [op, args] of ops) {
+ console.log({op, args})
+
+ try {
+ if (op == "set") {
+ ctx[args[0]] = args[1];
+ } else if (typeof ctx[op] === "function") {
+ const arg = args.filter(x => x != "unset")
+ ctx[op](...arg);
+ } else {
+ console.log("Recieved a bad function:" + op)
+ }
+ } catch (e) {
+ console.error(e)
+ }
+ }
+ }
+}
+
+function getProps(hook) {
+ return {
+ id: getAttributeOrThrow(hook.el, "data-id"),
+ width: getAttributeOrDefault(hook.el, "data-width", 300),
+ height: getAttributeOrDefault(hook.el, "data-height", 300),
+ };
+}
+
+export default Canvas
diff --git a/assets/package-lock.json b/assets/package-lock.json
index f3e4d8e..3e39498 100644
--- a/assets/package-lock.json
+++ b/assets/package-lock.json
@@ -61,7 +61,7 @@
"version": "3.1.0"
},
"../deps/phoenix_live_view": {
- "version": "0.17.4",
+ "version": "0.17.5",
"license": "MIT"
},
"node_modules/@babel/code-frame": {
diff --git a/lib/livebook_web/live/output.ex b/lib/livebook_web/live/output.ex
index 0fdaf87..6faa64f 100644
--- a/lib/livebook_web/live/output.ex
+++ b/lib/livebook_web/live/output.ex
@@ -85,6 +85,10 @@ defmodule LivebookWeb.Output do
live_component(LivebookWeb.Output.VegaLiteStaticComponent, id: id, spec: spec)
end
+ defp render_output({:canvas_static, ops, width, height}, %{id: id}) do
+ live_component(LivebookWeb.Output.CanvasStaticComponent, id: id, ops: ops, width: width, height: height)
+ end
+
defp render_output({:vega_lite_dynamic, pid}, %{id: id, socket: socket}) do
live_render(socket, LivebookWeb.Output.VegaLiteDynamicLive,
id: id,
diff --git a/lib/livebook_web/live/output/canvas_static_component.ex b/lib/livebook_web/live/output/canvas_static_component.ex
new file mode 100644
index 0000000..f8821ca
--- /dev/null
+++ b/lib/livebook_web/live/output/canvas_static_component.ex
@@ -0,0 +1,22 @@
+defmodule LivebookWeb.Output.CanvasStaticComponent do
+ use LivebookWeb, :live_component
+
+ @impl true
+ def update(assigns, socket) do
+ socket =
+ socket
+ |> assign(id: assigns.id)
+ |> assign(width: assigns.width)
+ |> assign(height: assigns.height)
+
+ {:ok, push_event(socket, "canvas:#{socket.assigns.id}:init", %{"ops" => assigns.ops})}
+ end
+
+ @impl true
+ def render(assigns) do
+ ~H"""
+ <div id={"canvas-#{@id}"} phx-hook="Canvas" phx-update="ignore" data-id={@id} width={@width} height={@height} >
+ </div>
+ """
+ end
+end
Mix.install([
{:kino, "~> 0.4.1"},
{:jason, "~> 1.2"}
])
:ok
canvas_ops = [
{:op, :restore, "restore", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/restore",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-restore-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "restore",
"special" => "",
"type" => "operation"
}},
{:op, :fill_text, "fillText",
[
{:required, "DOMString", {:text, [], nil}},
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:optional, "double", {:max_width, [], nil}, nil}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/fillText",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-filltext-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2009-06-30", "version_added" => "3.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "text",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "maxWidth",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "fillText",
"special" => "",
"type" => "operation"
}},
{:op, :arc, "arc",
[
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:required, "double", {:radius, [], nil}},
{:required, "double", {:start_angle, [], nil}},
{:required, "double", {:end_angle, [], nil}},
{:optional, "boolean", {:anticlockwise, [], nil}, %{"type" => "boolean", "value" => false}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/arc",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-arc-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2007-10-26", "version_added" => "3"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "radius",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "startAngle",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "endAngle",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => %{"type" => "boolean", "value" => false},
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "boolean",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "anticlockwise",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "arc",
"special" => "",
"type" => "operation"
}},
{:op, :rotate, "rotate", [{:required, "double", {:angle, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/rotate",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-rotate-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "angle",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "rotate",
"special" => "",
"type" => "operation"
}},
{:setter, :set_image_smoothing_enabled, "imageSmoothingEnabled",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-imagesmoothingenabled-dev",
"status" => %{"deprecated" => false, "experimental" => true, "standard_track" => true},
"support" => %{
"chrome" => [
%{"release_date" => "2013-10-01", "version_added" => "30"},
%{
"prefix" => "webkit",
"release_date" => "2012-07-31",
"version_added" => "21",
"version_removed" => "30"
}
],
"chrome_android" => [
%{"release_date" => "2013-10-02", "version_added" => "30"},
%{
"prefix" => "webkit",
"release_date" => "2013-02-27",
"version_added" => "25",
"version_removed" => "30"
}
],
"edge" => [
%{"release_date" => "2017-04-05", "version_added" => "15"},
%{
"prefix" => "ms",
"release_date" => "2015-07-28",
"version_added" => "12",
"version_removed" => "15"
}
],
"firefox" => [
%{"release_date" => "2017-01-24", "version_added" => "51"},
%{
"prefix" => "moz",
"release_date" => "2010-01-21",
"version_added" => "3.6",
"version_removed" => "51"
}
],
"firefox_android" => [
%{"release_date" => "2017-01-24", "version_added" => "51"},
%{
"prefix" => "moz",
"release_date" => "2011-03-29",
"version_added" => "4",
"version_removed" => "51"
}
],
"ie" => %{"prefix" => "ms", "release_date" => "2013-10-17", "version_added" => "11"},
"opera" => [
%{"release_date" => "2013-10-08", "version_added" => "17"},
%{
"prefix" => "webkit",
"release_date" => "2013-07-02",
"version_added" => "15",
"version_removed" => "17"
}
],
"opera_android" => [
%{"release_date" => "2013-11-20", "version_added" => "18"},
%{
"prefix" => "webkit",
"release_date" => "2013-05-21",
"version_added" => "14",
"version_removed" => "18"
}
],
"safari" => %{"release_date" => "2016-03-21", "version_added" => "9.1"},
"safari_ios" => %{"release_date" => "2016-03-21", "version_added" => "9.3"},
"samsunginternet_android" => [
%{"release_date" => "2014-10-17", "version_added" => "2.0"},
%{
"prefix" => "webkit",
"release_date" => "2013-09-25",
"version_added" => "1.5",
"version_removed" => "2.0"
}
],
"webview_android" => %{"release_date" => "2013-12-09", "version_added" => "4.4"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "boolean",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "imageSmoothingEnabled",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :fill, "fill",
[
{:required, "Path2D", {:path, [], nil}},
{:optional, "CanvasWindingRule", {:winding, [], nil},
%{"type" => "string", "value" => "nonzero"}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/fill",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fill-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Path2D",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "path",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => %{"type" => "string", "value" => "nonzero"},
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasWindingRule",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "winding",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "fill",
"special" => "",
"type" => "operation"
}},
{:setter, :set_text_align, "textAlign",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/textAlign",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-textalign-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2009-06-30", "version_added" => "3.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "textAlign",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :set_transform, "setTransform", [{:required, "SVGMatrix", {:matrix, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/setTransform",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-settransform-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2008-06-17", "version_added" => "3"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "SVGMatrix",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "matrix",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "setTransform",
"special" => "",
"type" => "operation"
}},
{:op, :line_to, "lineTo",
[{:required, "double", {:x, [], nil}}, {:required, "double", {:y, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/lineTo",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-lineto-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "lineTo",
"special" => "",
"type" => "operation"
}},
{:op, :begin_path, "beginPath", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/beginPath",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-beginpath-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "beginPath",
"special" => "",
"type" => "operation"
}},
{:setter, :set_shadow_offset_x, "shadowOffsetX",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/shadowOffsetX",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-shadowoffsetx-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "shadowOffsetX",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_font, "font",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/font",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-font-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2009-06-30", "version_added" => "3.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"extAttrs" => [
%{
"arguments" => [],
"name" => "SetterThrows",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "font",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_line_width, "lineWidth",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/lineWidth",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-linewidth-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "lineWidth",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_miter_limit, "miterLimit",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/miterLimit",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-miterlimit-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "miterLimit",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_global_composite_operation, "globalCompositeOperation",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-globalcompositeoperation-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2006-06-20", "version_added" => "9"},
"opera_android" => %{"release_date" => "2010-11-09", "version_added" => "10.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "globalCompositeOperation",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_global_alpha, "globalAlpha",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/globalAlpha",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-globalalpha-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "unrestricted double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "globalAlpha",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :fill_rect, "fillRect",
[
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:required, "double", {:w, [], nil}},
{:required, "double", {:h, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/fillRect",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fillrect-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2006-06-20", "version_added" => "9"},
"opera_android" => %{"release_date" => "2010-11-09", "version_added" => "10.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "w",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "h",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "fillRect",
"special" => "",
"type" => "operation"
}},
{:setter, :set_line_join, "lineJoin",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-linejoin-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{
"arguments" => [],
"name" => "GetterThrows",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "lineJoin",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :put_image_data, "putImageData",
[
{:required, "ImageData", {:imagedata, [], nil}},
{:required, "double", {:dx, [], nil}},
{:required, "double", {:dy, [], nil}},
{:required, "double", {:dirty_x, [], nil}},
{:required, "double", {:dirty_y, [], nil}},
{:required, "double", {:dirty_width, [], nil}},
{:required, "double", {:dirty_height, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/putImageData",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-putimagedata-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2006-10-24", "version_added" => "2"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "ImageData",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "imagedata",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dx",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dy",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dirtyX",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dirtyY",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dirtyWidth",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dirtyHeight",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "putImageData",
"special" => "",
"type" => "operation"
}},
{:op, :clip, "clip",
[
{:required, "Path2D", {:path, [], nil}},
{:optional, "CanvasWindingRule", {:winding, [], nil},
%{"type" => "string", "value" => "nonzero"}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/clip",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-clip-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Path2D",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "path",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => %{"type" => "string", "value" => "nonzero"},
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasWindingRule",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "winding",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "clip",
"special" => "",
"type" => "operation"
}},
{:op, :get_line_dash, "getLineDash", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/getLineDash",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-getlinedash-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2012-11-06", "version_added" => "23"},
"chrome_android" => %{"release_date" => "2013-02-27", "version_added" => "25"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2014-02-04", "version_added" => "27"},
"firefox_android" => %{"release_date" => "2014-02-04", "version_added" => "27"},
"ie" => %{"release_date" => "2013-10-17", "version_added" => "11"},
"opera" => %{"release_date" => "2013-07-02", "version_added" => "15"},
"opera_android" => %{"release_date" => "2013-05-21", "version_added" => "14"},
"safari" => %{"release_date" => "2013-10-22", "version_added" => "7"},
"safari_ios" => %{"release_date" => "2013-09-18", "version_added" => "7"},
"samsunginternet_android" => %{"release_date" => "2013-09-25", "version_added" => "1.5"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "sequence",
"idlType" => [
%{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "return-type",
"union" => false
}
],
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "getLineDash",
"special" => "",
"type" => "operation"
}},
{:op, :bezier_curve_to, "bezierCurveTo",
[
{:required, "double", {:cp1x, [], nil}},
{:required, "double", {:cp1y, [], nil}},
{:required, "double", {:cp2x, [], nil}},
{:required, "double", {:cp2y, [], nil}},
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-beziercurveto-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "cp1x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "cp1y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "cp2x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "cp2y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "bezierCurveTo",
"special" => "",
"type" => "operation"
}},
{:setter, :set_text_baseline, "textBaseline",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/textBaseline",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-textbaseline-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2009-06-30", "version_added" => "3.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "textBaseline",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :is_point_in_path, "isPointInPath",
[
{:required, "Path2D", {:path, [], nil}},
{:required, "unrestricted double", {:x, [], nil}},
{:required, "unrestricted double", {:y, [], nil}},
{:optional, "CanvasWindingRule", {:winding, [], nil},
%{"type" => "string", "value" => "nonzero"}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/isPointInPath",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ispointinpath-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2006-10-24", "version_added" => "2"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2008-03-18", "version_added" => "3.1"},
"safari_ios" => %{"release_date" => "2008-07-11", "version_added" => "2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Path2D",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "path",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "unrestricted double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "unrestricted double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => %{"type" => "string", "value" => "nonzero"},
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasWindingRule",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "winding",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "NeedsSubjectPrincipal",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "boolean",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "isPointInPath",
"special" => "",
"type" => "operation"
}},
{:op, :stroke_rect, "strokeRect",
[
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:required, "double", {:w, [], nil}},
{:required, "double", {:h, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/strokeRect",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-strokerect-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "w",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "h",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "strokeRect",
"special" => "",
"type" => "operation"
}},
{:op, :stroke_text, "strokeText",
[
{:required, "DOMString", {:text, [], nil}},
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:optional, "double", {:max_width, [], nil}, nil}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/strokeText",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-stroketext-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2009-06-30", "version_added" => "3.5"},
"firefox_android" => %{"version_added" => true},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "text",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "maxWidth",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "strokeText",
"special" => "",
"type" => "operation"
}},
{:op, :create_pattern, "createPattern",
[
{:required, "CanvasImageSource", {:image, [], nil}},
{:required, "DOMString", {:repetition, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/createPattern",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-createpattern-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasImageSource",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "image",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [
%{
"arguments" => [],
"name" => "TreatNullAs",
"rhs" => %{"type" => "identifier", "value" => "EmptyString"},
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "repetition",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "NewObject", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasPattern",
"nullable" => true,
"type" => "return-type",
"union" => false
},
"name" => "createPattern",
"special" => "",
"type" => "operation"
}},
{:op, :measure_text, "measureText", [{:required, "DOMString", {:text, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/measureText",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-measuretext-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2006-10-24", "version_added" => "2"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "text",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "NewObject", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "TextMetrics",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "measureText",
"special" => "",
"type" => "operation"
}},
{:setter, :set_filter, "filter",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/filter",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-filter-dev",
"status" => %{"deprecated" => false, "experimental" => true, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2016-07-20", "version_added" => "52"},
"chrome_android" => %{"release_date" => "2016-07-27", "version_added" => "52"},
"edge" => %{"release_date" => "2020-01-15", "version_added" => "79"},
"firefox" => %{"release_date" => "2016-09-20", "version_added" => "49"},
"firefox_android" => %{"release_date" => "2016-09-20", "version_added" => "49"},
"ie" => %{"version_added" => false},
"opera" => %{"release_date" => "2016-08-02", "version_added" => "39"},
"opera_android" => %{"release_date" => "2016-10-25", "version_added" => "41"},
"safari" => %{"version_added" => false},
"safari_ios" => %{"version_added" => false},
"samsunginternet_android" => %{"release_date" => "2017-08-23", "version_added" => "6.0"},
"webview_android" => %{"release_date" => "2016-07-27", "version_added" => "52"}
}
},
%{
"extAttrs" => [
%{
"arguments" => [],
"name" => "Pref",
"rhs" => %{"type" => "string", "value" => "canvas.filters.enabled"},
"type" => "extended-attribute"
},
%{
"arguments" => [],
"name" => "SetterThrows",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "filter",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :draw_image, "drawImage",
[
{:required, "CanvasImageSource", {:image, [], nil}},
{:required, "double", {:sx, [], nil}},
{:required, "double", {:sy, [], nil}},
{:required, "double", {:sw, [], nil}},
{:required, "double", {:sh, [], nil}},
{:required, "double", {:dx, [], nil}},
{:required, "double", {:dy, [], nil}},
{:required, "double", {:dw, [], nil}},
{:required, "double", {:dh, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-drawimage-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2006-06-20", "version_added" => "9"},
"opera_android" => %{"release_date" => "2010-11-09", "version_added" => "10.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasImageSource",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "image",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sx",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sy",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sw",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sh",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dx",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dy",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dw",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dh",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "drawImage",
"special" => "",
"type" => "operation"
}},
{:op, :is_point_in_stroke, "isPointInStroke",
[
{:required, "Path2D", {:path, [], nil}},
{:required, "unrestricted double", {:x, [], nil}},
{:required, "unrestricted double", {:y, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/isPointInStroke",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ispointinstroke-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2013-03-26", "version_added" => "26"},
"chrome_android" => %{"release_date" => "2013-04-03", "version_added" => "26"},
"edge" => %{"release_date" => "2020-01-15", "version_added" => "79"},
"firefox" => [
%{"release_date" => "2013-04-02", "version_added" => "20"},
%{
"prefix" => "moz",
"release_date" => "2013-02-19",
"version_added" => "19",
"version_removed" => "20"
}
],
"firefox_android" => [
%{"release_date" => "2013-04-02", "version_added" => "20"},
%{
"prefix" => "moz",
"release_date" => "2013-02-19",
"version_added" => "19",
"version_removed" => "20"
}
],
"ie" => %{"version_added" => false},
"opera" => %{"release_date" => "2013-07-02", "version_added" => "15"},
"opera_android" => %{"release_date" => "2013-05-21", "version_added" => "14"},
"safari" => %{"release_date" => "2013-10-22", "version_added" => "7"},
"safari_ios" => %{"release_date" => "2013-09-18", "version_added" => "7"},
"samsunginternet_android" => %{"release_date" => "2013-09-25", "version_added" => "1.5"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Path2D",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "path",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "unrestricted double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "unrestricted double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "NeedsSubjectPrincipal",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "boolean",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "isPointInStroke",
"special" => "",
"type" => "operation"
}},
{:op, :save, "save", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/save",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-save-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "save",
"special" => "",
"type" => "operation"
}},
{:op, :stroke, "stroke", [{:required, "Path2D", {:path, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/stroke",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-stroke-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Path2D",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "path",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "stroke",
"special" => "",
"type" => "operation"
}},
{:op, :move_to, "moveTo",
[{:required, "double", {:x, [], nil}}, {:required, "double", {:y, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/moveTo",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-moveto-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "moveTo",
"special" => "",
"type" => "operation"
}},
{:op, :create_radial_gradient, "createRadialGradient",
[
{:required, "double", {:x0, [], nil}},
{:required, "double", {:y0, [], nil}},
{:required, "double", {:r0, [], nil}},
{:required, "double", {:x1, [], nil}},
{:required, "double", {:y1, [], nil}},
{:required, "double", {:r1, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/createRadialGradient",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-createradialgradient-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x0",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y0",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "r0",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x1",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y1",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "r1",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "NewObject", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasGradient",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "createRadialGradient",
"special" => "",
"type" => "operation"
}},
{:setter, :set_fill_style, "fillStyle",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/fillStyle",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fillstyle-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => [
%{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => nil,
"union" => false
},
%{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasGradient",
"nullable" => false,
"type" => nil,
"union" => false
},
%{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasPattern",
"nullable" => false,
"type" => nil,
"union" => false
}
],
"nullable" => false,
"type" => "attribute-type",
"union" => true
},
"name" => "fillStyle",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :clear_rect, "clearRect",
[
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:required, "double", {:w, [], nil}},
{:required, "double", {:h, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/clearRect",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-clearrect-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "w",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "h",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "clearRect",
"special" => "",
"type" => "operation"
}},
{:setter, :set_stroke_style, "strokeStyle",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/strokeStyle",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-strokestyle-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => [
%{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => nil,
"union" => false
},
%{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasGradient",
"nullable" => false,
"type" => nil,
"union" => false
},
%{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasPattern",
"nullable" => false,
"type" => nil,
"union" => false
}
],
"nullable" => false,
"type" => "attribute-type",
"union" => true
},
"name" => "strokeStyle",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :set_line_dash, "setLineDash",
[
{:required,
[
%{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
}
], {:segments, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-setlinedash-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2012-11-06", "version_added" => "23"},
"chrome_android" => %{"release_date" => "2013-02-27", "version_added" => "25"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2014-02-04", "version_added" => "27"},
"firefox_android" => %{"release_date" => "2014-02-04", "version_added" => "27"},
"ie" => %{"release_date" => "2013-10-17", "version_added" => "11"},
"opera" => %{"release_date" => "2013-07-02", "version_added" => "15"},
"opera_android" => %{"release_date" => "2013-05-21", "version_added" => "14"},
"safari" => %{"release_date" => "2013-10-22", "version_added" => "7"},
"safari_ios" => %{"release_date" => "2013-09-18", "version_added" => "7"},
"samsunginternet_android" => %{"release_date" => "2013-09-25", "version_added" => "1.5"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "sequence",
"idlType" => [
%{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
}
],
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "segments",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "setLineDash",
"special" => "",
"type" => "operation"
}},
{:op, :reset_transform, "resetTransform", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/resetTransform",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-resettransform-dev",
"status" => %{"deprecated" => false, "experimental" => true, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2013-11-12", "version_added" => "31"},
"chrome_android" => %{"release_date" => "2013-11-14", "version_added" => "31"},
"edge" => %{"release_date" => "2020-01-15", "version_added" => "79"},
"firefox" => %{"release_date" => "2015-02-24", "version_added" => "36"},
"firefox_android" => %{"release_date" => "2015-02-27", "version_added" => "36"},
"ie" => %{"version_added" => false},
"opera" => %{"release_date" => "2013-11-19", "version_added" => "18"},
"opera_android" => %{"release_date" => "2013-11-20", "version_added" => "18"},
"safari" => %{"release_date" => "2017-03-27", "version_added" => "10.1"},
"safari_ios" => %{"release_date" => "2017-03-27", "version_added" => "10.3"},
"samsunginternet_android" => %{"release_date" => "2014-10-17", "version_added" => "2.0"},
"webview_android" => %{"release_date" => "2013-12-09", "version_added" => "4.4"}
}
},
%{
"arguments" => [],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "resetTransform",
"special" => "",
"type" => "operation"
}},
{:op, :ellipse, "ellipse",
[
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:required, "double", {:radius_x, [], nil}},
{:required, "double", {:radius_y, [], nil}},
{:required, "double", {:rotation, [], nil}},
{:required, "double", {:start_angle, [], nil}},
{:required, "double", {:end_angle, [], nil}},
{:optional, "boolean", {:anticlockwise, [], nil}, %{"type" => "boolean", "value" => false}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/ellipse",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ellipse-dev",
"status" => %{"deprecated" => false, "experimental" => true, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2013-11-12", "version_added" => "31"},
"chrome_android" => %{"release_date" => "2013-11-14", "version_added" => "31"},
"edge" => %{"release_date" => "2015-11-12", "version_added" => "13"},
"firefox" => %{"release_date" => "2016-08-02", "version_added" => "48"},
"firefox_android" => %{"release_date" => "2016-08-02", "version_added" => "48"},
"ie" => %{"version_added" => false},
"opera" => %{"release_date" => "2013-11-19", "version_added" => "18"},
"opera_android" => %{"release_date" => "2013-11-20", "version_added" => "18"},
"safari" => %{"release_date" => "2015-09-30", "version_added" => "9"},
"safari_ios" => %{"release_date" => "2015-09-16", "version_added" => "9"},
"samsunginternet_android" => %{"release_date" => "2014-10-17", "version_added" => "2.0"},
"webview_android" => %{"release_date" => "2014-06-02", "version_added" => "4.4.3"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "radiusX",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "radiusY",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "rotation",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "startAngle",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "endAngle",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => %{"type" => "boolean", "value" => false},
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "boolean",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "anticlockwise",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "ellipse",
"special" => "",
"type" => "operation"
}},
{:setter, :set_shadow_color, "shadowColor",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/shadowColor",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-shadowcolor-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "shadowColor",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :transform, "transform",
[
{:required, "double", {:a, [], nil}},
{:required, "double", {:b, [], nil}},
{:required, "double", {:c, [], nil}},
{:required, "double", {:d, [], nil}},
{:required, "double", {:e, [], nil}},
{:required, "double", {:f, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/transform",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-transform-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2008-06-17", "version_added" => "3"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2008-03-18", "version_added" => "3.1"},
"safari_ios" => %{"release_date" => "2008-07-11", "version_added" => "2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "a",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "b",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "c",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "d",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "e",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "f",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "transform",
"special" => "",
"type" => "operation"
}},
{:op, :create_image_data, "createImageData", [{:required, "ImageData", {:imagedata, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/createImageData",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-createimagedata-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2006-10-24", "version_added" => "2"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "ImageData",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "imagedata",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "NewObject", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "ImageData",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "createImageData",
"special" => "",
"type" => "operation"
}},
{:setter, :set_line_cap, "lineCap",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-linecap-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "lineCap",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :draw_focus_if_needed, "drawFocusIfNeeded", [{:required, "Element", {:element, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/drawFocusIfNeeded",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-drawfocusifneeded-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2014-08-26", "version_added" => "37"},
"chrome_android" => %{"release_date" => "2014-09-03", "version_added" => "37"},
"edge" => %{"release_date" => "2016-08-02", "version_added" => "14"},
"firefox" => [
%{"release_date" => "2014-09-02", "version_added" => "32"},
%{
"alternative_name" => "drawSystemFocusRing",
"release_date" => "2014-03-18",
"version_added" => "28"
}
],
"firefox_android" => [
%{"release_date" => "2014-09-02", "version_added" => "32"},
%{
"alternative_name" => "drawSystemFocusRing",
"release_date" => "2014-03-18",
"version_added" => "28"
}
],
"ie" => %{"version_added" => false},
"opera" => %{"release_date" => "2014-09-02", "version_added" => "24"},
"opera_android" => %{"release_date" => "2014-09-10", "version_added" => "24"},
"safari" => %{"release_date" => "2014-10-16", "version_added" => "8"},
"safari_ios" => %{"release_date" => "2014-09-17", "version_added" => "8"},
"samsunginternet_android" => %{"release_date" => "2015-04-10", "version_added" => "3.0"},
"webview_android" => %{"release_date" => "2014-09-03", "version_added" => "37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Element",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "element",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "Pref",
"rhs" => %{"type" => "string", "value" => "canvas.focusring.enabled"},
"type" => "extended-attribute"
},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "drawFocusIfNeeded",
"special" => "",
"type" => "operation"
}},
{:setter, :set_shadow_blur, "shadowBlur",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/shadowBlur",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-shadowblur-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "shadowBlur",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_line_dash_offset, "lineDashOffset",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-linedashoffset-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2012-11-06", "version_added" => "23"},
"chrome_android" => %{"release_date" => "2013-02-27", "version_added" => "25"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => [
%{"release_date" => "2014-02-04", "version_added" => "27"},
%{
"alternative_name" => "mozDashOffset",
"release_date" => "2011-09-27",
"version_added" => "7"
}
],
"firefox_android" => [
%{"release_date" => "2014-02-04", "version_added" => "27"},
%{
"alternative_name" => "mozDashOffset",
"release_date" => "2011-09-27",
"version_added" => "7"
}
],
"ie" => %{"release_date" => "2013-10-17", "version_added" => "11"},
"opera" => %{"release_date" => "2013-07-02", "version_added" => "15"},
"opera_android" => %{"release_date" => "2013-05-21", "version_added" => "14"},
"safari" => %{"release_date" => "2013-10-22", "version_added" => "7"},
"safari_ios" => %{"release_date" => "2013-09-18", "version_added" => "7"},
"samsunginternet_android" => %{"release_date" => "2013-09-25", "version_added" => "1.5"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "lineDashOffset",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :scale, "scale",
[{:required, "double", {:x, [], nil}}, {:required, "double", {:y, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/scale",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-scale-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "scale",
"special" => "",
"type" => "operation"
}},
{:op, :create_linear_gradient, "createLinearGradient",
[
{:required, "double", {:x0, [], nil}},
{:required, "double", {:y0, [], nil}},
{:required, "double", {:x1, [], nil}},
{:required, "double", {:y1, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/createLinearGradient",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-createlineargradient-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x0",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y0",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x1",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y1",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "NewObject", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasGradient",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "createLinearGradient",
"special" => "",
"type" => "operation"
}},
{:op, :translate, "translate",
[{:required, "double", {:x, [], nil}}, {:required, "double", {:y, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/translate",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-translate-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "translate",
"special" => "",
"type" => "operation"
}},
{:op, :close_path, "closePath", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/closePath",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-closepath-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "closePath",
"special" => "",
"type" => "operation"
}},
{:op, :arc_to, "arcTo",
[
{:required, "double", {:x1, [], nil}},
{:required, "double", {:y1, [], nil}},
{:required, "double", {:x2, [], nil}},
{:required, "double", {:y2, [], nil}},
{:required, "double", {:radius, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/arcTo",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-arcto-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x1",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y1",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x2",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y2",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "radius",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "arcTo",
"special" => "",
"type" => "operation"
}},
{:op, :quadratic_curve_to, "quadraticCurveTo",
[
{:required, "double", {:cpx, [], nil}},
{:required, "double", {:cpy, [], nil}},
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/quadraticCurveTo",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-quadraticcurveto-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2007-10-26", "version_added" => "3"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "cpx",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "cpy",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "quadraticCurveTo",
"special" => "",
"type" => "operation"
}},
{:op, :rect, "rect",
[
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:required, "double", {:w, [], nil}},
{:required, "double", {:h, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/rect",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-rect-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "w",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "h",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "rect",
"special" => "",
"type" => "operation"
}},
{:op, :get_image_data, "getImageData",
[
{:required, "double", {:sx, [], nil}},
{:required, "double", {:sy, [], nil}},
{:required, "double", {:sw, [], nil}},
{:required, "double", {:sh, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/getImageData",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-getimagedata-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{
"notes" =>
"Since Firefox 5, <code>getImageData</code> now correctly accepts rectangles that extend beyond the bounds of the canvas; pixels outside the canvas are returned as transparent black and now also returns at least one pixel's worth of image data if a rectangle smaller than one pixel is specified.",
"release_date" => "2006-10-24",
"version_added" => "2"
},
"firefox_android" => %{
"notes" =>
"Since Firefox 5, <code>getImageData</code> now correctly accepts rectangles that extend beyond the bounds of the canvas; pixels outside the canvas are returned as transparent black and now also returns at least one pixel's worth of image data if a rectangle smaller than one pixel is specified.",
"release_date" => "2011-03-29",
"version_added" => "4"
},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2008-06-12", "version_added" => "9.5"},
"opera_android" => %{"release_date" => "2010-11-09", "version_added" => "10.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sx",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sy",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sw",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sh",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "NewObject", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{
"arguments" => [],
"name" => "NeedsSubjectPrincipal",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "ImageData",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "getImageData",
"special" => "",
"type" => "operation"
}},
{:op, :get_transform, "getTransform", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/getTransform",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-gettransform-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2018-07-24", "version_added" => "68"},
"chrome_android" => %{"release_date" => "2018-07-24", "version_added" => "68"},
"edge" => %{"release_date" => "2020-01-15", "version_added" => "79"},
"firefox" => %{"release_date" => "2019-10-22", "version_added" => "70"},
"firefox_android" => %{"version_added" => false},
"ie" => %{"version_added" => false},
"opera" => %{"release_date" => "2018-08-16", "version_added" => "55"},
"opera_android" => %{"release_date" => "2018-11-08", "version_added" => "48"},
"safari" => %{"release_date" => "2017-09-19", "version_added" => "11"},
"safari_ios" => %{"release_date" => "2017-09-19", "version_added" => "11"},
"samsunginternet_android" => %{"release_date" => "2019-08-22", "version_added" => "10.0"},
"webview_android" => %{"release_date" => "2018-07-24", "version_added" => "68"}
}
},
%{
"arguments" => [],
"extAttrs" => [
%{"arguments" => [], "name" => "NewObject", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMMatrix",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "getTransform",
"special" => "",
"type" => "operation"
}},
{:setter, :set_shadow_offset_y, "shadowOffsetY",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/shadowOffsetY",
"spec_url" =>
"https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-shadowoffsety-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{
"arguments" => [],
"name" => "LenientFloat",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "shadowOffsetY",
"readonly" => false,
"special" => "",
"type" => "attribute"
}}
]
[
{:op, :restore, "restore", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/restore",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-restore-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "restore",
"special" => "",
"type" => "operation"
}},
{:op, :fill_text, "fillText",
[
{:required, "DOMString", {:text, [], nil}},
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:optional, "double", {:max_width, [], nil}, nil}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/fillText",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-filltext-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2009-06-30", "version_added" => "3.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "text",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "maxWidth",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "fillText",
"special" => "",
"type" => "operation"
}},
{:op, :arc, "arc",
[
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:required, "double", {:radius, [], nil}},
{:required, "double", {:start_angle, [], nil}},
{:required, "double", {:end_angle, [], nil}},
{:optional, "boolean", {:anticlockwise, [], nil}, %{"type" => "boolean", "value" => false}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/arc",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-arc-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2007-10-26", "version_added" => "3"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "radius",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "startAngle",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "endAngle",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => %{"type" => "boolean", "value" => false},
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "boolean",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "anticlockwise",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "arc",
"special" => "",
"type" => "operation"
}},
{:op, :rotate, "rotate", [{:required, "double", {:angle, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/rotate",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-rotate-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "angle",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "rotate",
"special" => "",
"type" => "operation"
}},
{:setter, :set_image_smoothing_enabled, "imageSmoothingEnabled",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-imagesmoothingenabled-dev",
"status" => %{"deprecated" => false, "experimental" => true, "standard_track" => true},
"support" => %{
"chrome" => [
%{"release_date" => "2013-10-01", "version_added" => "30"},
%{
"prefix" => "webkit",
"release_date" => "2012-07-31",
"version_added" => "21",
"version_removed" => "30"
}
],
"chrome_android" => [
%{"release_date" => "2013-10-02", "version_added" => "30"},
%{
"prefix" => "webkit",
"release_date" => "2013-02-27",
"version_added" => "25",
"version_removed" => "30"
}
],
"edge" => [
%{"release_date" => "2017-04-05", "version_added" => "15"},
%{
"prefix" => "ms",
"release_date" => "2015-07-28",
"version_added" => "12",
"version_removed" => "15"
}
],
"firefox" => [
%{"release_date" => "2017-01-24", "version_added" => "51"},
%{
"prefix" => "moz",
"release_date" => "2010-01-21",
"version_added" => "3.6",
"version_removed" => "51"
}
],
"firefox_android" => [
%{"release_date" => "2017-01-24", "version_added" => "51"},
%{
"prefix" => "moz",
"release_date" => "2011-03-29",
"version_added" => "4",
"version_removed" => "51"
}
],
"ie" => %{"prefix" => "ms", "release_date" => "2013-10-17", "version_added" => "11"},
"opera" => [
%{"release_date" => "2013-10-08", "version_added" => "17"},
%{
"prefix" => "webkit",
"release_date" => "2013-07-02",
"version_added" => "15",
"version_removed" => "17"
}
],
"opera_android" => [
%{"release_date" => "2013-11-20", "version_added" => "18"},
%{
"prefix" => "webkit",
"release_date" => "2013-05-21",
"version_added" => "14",
"version_removed" => "18"
}
],
"safari" => %{"release_date" => "2016-03-21", "version_added" => "9.1"},
"safari_ios" => %{"release_date" => "2016-03-21", "version_added" => "9.3"},
"samsunginternet_android" => [
%{"release_date" => "2014-10-17", "version_added" => "2.0"},
%{
"prefix" => "webkit",
"release_date" => "2013-09-25",
"version_added" => "1.5",
"version_removed" => "2.0"
}
],
"webview_android" => %{"release_date" => "2013-12-09", "version_added" => "4.4"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "boolean",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "imageSmoothingEnabled",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :fill, "fill",
[
{:required, "Path2D", {:path, [], nil}},
{:optional, "CanvasWindingRule", {:winding, [], nil},
%{"type" => "string", "value" => "nonzero"}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/fill",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fill-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Path2D",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "path",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => %{"type" => "string", "value" => "nonzero"},
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasWindingRule",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "winding",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "fill",
"special" => "",
"type" => "operation"
}},
{:setter, :set_text_align, "textAlign",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/textAlign",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-textalign-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2009-06-30", "version_added" => "3.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "textAlign",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :set_transform, "setTransform", [{:required, "SVGMatrix", {:matrix, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/setTransform",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-settransform-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2008-06-17", "version_added" => "3"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "SVGMatrix",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "matrix",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "setTransform",
"special" => "",
"type" => "operation"
}},
{:op, :line_to, "lineTo",
[{:required, "double", {:x, [], nil}}, {:required, "double", {:y, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/lineTo",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-lineto-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "lineTo",
"special" => "",
"type" => "operation"
}},
{:op, :begin_path, "beginPath", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/beginPath",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-beginpath-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "beginPath",
"special" => "",
"type" => "operation"
}},
{:setter, :set_shadow_offset_x, "shadowOffsetX",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/shadowOffsetX",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-shadowoffsetx-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "shadowOffsetX",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_font, "font",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/font",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-font-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2009-06-30", "version_added" => "3.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"extAttrs" => [
%{"arguments" => [], "name" => "SetterThrows", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "font",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_line_width, "lineWidth",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/lineWidth",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-linewidth-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "lineWidth",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_miter_limit, "miterLimit",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/miterLimit",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-miterlimit-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "miterLimit",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_global_composite_operation, "globalCompositeOperation",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-globalcompositeoperation-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2006-06-20", "version_added" => "9"},
"opera_android" => %{"release_date" => "2010-11-09", "version_added" => "10.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "globalCompositeOperation",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:setter, :set_global_alpha, "globalAlpha",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/globalAlpha",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-globalalpha-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "unrestricted double",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "globalAlpha",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :fill_rect, "fillRect",
[
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:required, "double", {:w, [], nil}},
{:required, "double", {:h, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/fillRect",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fillrect-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2006-06-20", "version_added" => "9"},
"opera_android" => %{"release_date" => "2010-11-09", "version_added" => "10.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "w",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "h",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "fillRect",
"special" => "",
"type" => "operation"
}},
{:setter, :set_line_join, "lineJoin",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-linejoin-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"extAttrs" => [
%{"arguments" => [], "name" => "GetterThrows", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "lineJoin",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :put_image_data, "putImageData",
[
{:required, "ImageData", {:imagedata, [], nil}},
{:required, "double", {:dx, [], nil}},
{:required, "double", {:dy, [], nil}},
{:required, "double", {:dirty_x, [], nil}},
{:required, "double", {:dirty_y, [], nil}},
{:required, "double", {:dirty_width, [], nil}},
{:required, "double", {:dirty_height, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/putImageData",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-putimagedata-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2006-10-24", "version_added" => "2"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "ImageData",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "imagedata",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dx",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dy",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dirtyX",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dirtyY",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dirtyWidth",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "dirtyHeight",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "putImageData",
"special" => "",
"type" => "operation"
}},
{:op, :clip, "clip",
[
{:required, "Path2D", {:path, [], nil}},
{:optional, "CanvasWindingRule", {:winding, [], nil},
%{"type" => "string", "value" => "nonzero"}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/clip",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-clip-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Path2D",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "path",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => %{"type" => "string", "value" => "nonzero"},
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasWindingRule",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "winding",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "clip",
"special" => "",
"type" => "operation"
}},
{:op, :get_line_dash, "getLineDash", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/getLineDash",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-getlinedash-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2012-11-06", "version_added" => "23"},
"chrome_android" => %{"release_date" => "2013-02-27", "version_added" => "25"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2014-02-04", "version_added" => "27"},
"firefox_android" => %{"release_date" => "2014-02-04", "version_added" => "27"},
"ie" => %{"release_date" => "2013-10-17", "version_added" => "11"},
"opera" => %{"release_date" => "2013-07-02", "version_added" => "15"},
"opera_android" => %{"release_date" => "2013-05-21", "version_added" => "14"},
"safari" => %{"release_date" => "2013-10-22", "version_added" => "7"},
"safari_ios" => %{"release_date" => "2013-09-18", "version_added" => "7"},
"samsunginternet_android" => %{"release_date" => "2013-09-25", "version_added" => "1.5"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "sequence",
"idlType" => [
%{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "return-type",
"union" => false
}
],
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "getLineDash",
"special" => "",
"type" => "operation"
}},
{:op, :bezier_curve_to, "bezierCurveTo",
[
{:required, "double", {:cp1x, [], nil}},
{:required, "double", {:cp1y, [], nil}},
{:required, "double", {:cp2x, [], nil}},
{:required, "double", {:cp2y, [], nil}},
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-beziercurveto-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2011-12-06", "version_added" => "11.6"},
"opera_android" => %{"release_date" => "2012-02-25", "version_added" => "12"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "cp1x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "cp1y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "cp2x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "cp2y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "bezierCurveTo",
"special" => "",
"type" => "operation"
}},
{:setter, :set_text_baseline, "textBaseline",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/textBaseline",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-textbaseline-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2009-06-30", "version_added" => "3.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "textBaseline",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :is_point_in_path, "isPointInPath",
[
{:required, "Path2D", {:path, [], nil}},
{:required, "unrestricted double", {:x, [], nil}},
{:required, "unrestricted double", {:y, [], nil}},
{:optional, "CanvasWindingRule", {:winding, [], nil},
%{"type" => "string", "value" => "nonzero"}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/isPointInPath",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ispointinpath-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2006-10-24", "version_added" => "2"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2008-03-18", "version_added" => "3.1"},
"safari_ios" => %{"release_date" => "2008-07-11", "version_added" => "2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Path2D",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "path",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "unrestricted double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "unrestricted double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => %{"type" => "string", "value" => "nonzero"},
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasWindingRule",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "winding",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "NeedsSubjectPrincipal",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "boolean",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "isPointInPath",
"special" => "",
"type" => "operation"
}},
{:op, :stroke_rect, "strokeRect",
[
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:required, "double", {:w, [], nil}},
{:required, "double", {:h, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/strokeRect",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-strokerect-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "w",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "h",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "strokeRect",
"special" => "",
"type" => "operation"
}},
{:op, :stroke_text, "strokeText",
[
{:required, "DOMString", {:text, [], nil}},
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:optional, "double", {:max_width, [], nil}, nil}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/strokeText",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-stroketext-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2009-06-30", "version_added" => "3.5"},
"firefox_android" => %{"version_added" => true},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "text",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "maxWidth",
"optional" => true,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "strokeText",
"special" => "",
"type" => "operation"
}},
{:op, :create_pattern, "createPattern",
[
{:required, "CanvasImageSource", {:image, [], nil}},
{:required, "DOMString", {:repetition, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/createPattern",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-createpattern-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", "version_added" => "1"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"release_date" => "2008-09-23", "version_added" => "1"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasImageSource",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "image",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [
%{
"arguments" => [],
"name" => "TreatNullAs",
"rhs" => %{"type" => "identifier", "value" => "EmptyString"},
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "repetition",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "NewObject", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasPattern",
"nullable" => true,
"type" => "return-type",
"union" => false
},
"name" => "createPattern",
"special" => "",
"type" => "operation"
}},
{:op, :measure_text, "measureText", [{:required, "DOMString", {:text, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/measureText",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-measuretext-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2006-10-24", "version_added" => "2"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{"release_date" => "2009-06-08", "version_added" => "4"},
"safari_ios" => %{"release_date" => "2010-04-03", "version_added" => "3.2"},
"samsunginternet_android" => %{"release_date" => "2013-04-27", "version_added" => "1.0"},
"webview_android" => %{"version_added" => "≤37"}
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "text",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "NewObject", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "TextMetrics",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "measureText",
"special" => "",
"type" => "operation"
}},
{:setter, :set_filter, "filter",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/filter",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-filter-dev",
"status" => %{"deprecated" => false, "experimental" => true, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2016-07-20", "version_added" => "52"},
"chrome_android" => %{"release_date" => "2016-07-27", "version_added" => "52"},
"edge" => %{"release_date" => "2020-01-15", "version_added" => "79"},
"firefox" => %{"release_date" => "2016-09-20", "version_added" => "49"},
"firefox_android" => %{"release_date" => "2016-09-20", "version_added" => "49"},
"ie" => %{"version_added" => false},
"opera" => %{"release_date" => "2016-08-02", "version_added" => "39"},
"opera_android" => %{"release_date" => "2016-10-25", "version_added" => "41"},
"safari" => %{"version_added" => false},
"safari_ios" => %{"version_added" => false},
"samsunginternet_android" => %{"release_date" => "2017-08-23", "version_added" => "6.0"},
"webview_android" => %{"release_date" => "2016-07-27", ...}
}
},
%{
"extAttrs" => [
%{
"arguments" => [],
"name" => "Pref",
"rhs" => %{"type" => "string", "value" => "canvas.filters.enabled"},
"type" => "extended-attribute"
},
%{"arguments" => [], "name" => "SetterThrows", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "DOMString",
"nullable" => false,
"type" => "attribute-type",
"union" => false
},
"name" => "filter",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :draw_image, "drawImage",
[
{:required, "CanvasImageSource", {:image, [], nil}},
{:required, "double", {:sx, [], nil}},
{:required, "double", {:sy, [], nil}},
{:required, "double", {:sw, [], nil}},
{:required, "double", {:sh, [], nil}},
{:required, "double", {:dx, [], nil}},
{:required, "double", {:dy, [], nil}},
{:required, "double", {:dw, [], nil}},
{:required, "double", {:dh, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-drawimage-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"release_date" => "2006-06-20", "version_added" => "9"},
"opera_android" => %{"release_date" => "2010-11-09", "version_added" => "10.1"},
"safari" => %{"release_date" => "2005-04-29", "version_added" => "2"},
"safari_ios" => %{"release_date" => "2007-06-29", ...},
"samsunginternet_android" => %{...},
...
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasImageSource",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "image",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sx",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sy",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "sw",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
...
},
"name" => "sh",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
...
},
"name" => "dx",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{"extAttrs" => [], "generic" => "", "idlType" => "double", ...},
"name" => "dy",
"optional" => false,
"type" => "argument",
...
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{"extAttrs" => [], "generic" => "", ...},
"name" => "dw",
"optional" => false,
...
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{"extAttrs" => [], ...},
"name" => "dh",
...
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "drawImage",
"special" => "",
"type" => "operation"
}},
{:op, :is_point_in_stroke, "isPointInStroke",
[
{:required, "Path2D", {:path, [], nil}},
{:required, "unrestricted double", {:x, [], nil}},
{:required, "unrestricted double", {:y, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/isPointInStroke",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ispointinstroke-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2013-03-26", "version_added" => "26"},
"chrome_android" => %{"release_date" => "2013-04-03", "version_added" => "26"},
"edge" => %{"release_date" => "2020-01-15", "version_added" => "79"},
"firefox" => [
%{"release_date" => "2013-04-02", "version_added" => "20"},
%{
"prefix" => "moz",
"release_date" => "2013-02-19",
"version_added" => "19",
"version_removed" => "20"
}
],
"firefox_android" => [
%{"release_date" => "2013-04-02", "version_added" => "20"},
%{"prefix" => "moz", "release_date" => "2013-02-19", "version_added" => "19", ...}
],
"ie" => %{"version_added" => false},
"opera" => %{"release_date" => "2013-07-02", "version_added" => "15"},
"opera_android" => %{"release_date" => "2013-05-21", "version_added" => "14"},
"safari" => %{"release_date" => "2013-10-22", ...},
"safari_ios" => %{...},
...
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Path2D",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "path",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "unrestricted double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "unrestricted double",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{
"arguments" => [],
"name" => "NeedsSubjectPrincipal",
"rhs" => nil,
"type" => "extended-attribute"
}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "boolean",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "isPointInStroke",
"special" => "",
"type" => "operation"
}},
{:op, :save, "save", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/save",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-save-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{"version_added" => "≤12.1"},
"safari" => %{...},
...
}
},
%{
"arguments" => [],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "save",
"special" => "",
"type" => "operation"
}},
{:op, :stroke, "stroke", [{:required, "Path2D", {:path, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/stroke",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-stroke-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", "version_added" => "9"},
"opera" => %{"version_added" => "≤12.1"},
"opera_android" => %{...},
...
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "Path2D",
"nullable" => false,
"type" => "argument-type",
"union" => false
},
"name" => "path",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "stroke",
"special" => "",
"type" => "operation"
}},
{:op, :move_to, "moveTo",
[{:required, "double", {:x, [], nil}}, {:required, "double", {:y, [], nil}}],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/moveTo",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-moveto-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", "version_added" => "4"},
"ie" => %{"release_date" => "2011-03-14", ...},
"opera" => %{...},
...
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
"type" => "argument-type",
...
},
"name" => "x",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
...
},
"name" => "y",
"optional" => false,
"type" => "argument",
"variadic" => false
}
],
"extAttrs" => [
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "moveTo",
"special" => "",
"type" => "operation"
}},
{:op, :create_radial_gradient, "createRadialGradient",
[
{:required, "double", {:x0, [], nil}},
{:required, "double", {:y0, [], nil}},
{:required, "double", {:r0, [], nil}},
{:required, "double", {:x1, [], nil}},
{:required, "double", {:y1, [], nil}},
{:required, "double", {:r1, [], ...}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/createRadialGradient",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-createradialgradient-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", ...},
"ie" => %{...},
...
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "double",
"nullable" => false,
...
},
"name" => "x0",
"optional" => false,
"type" => "argument",
"variadic" => false
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{"extAttrs" => [], "generic" => "", "idlType" => "double", ...},
"name" => "y0",
"optional" => false,
"type" => "argument",
...
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{"extAttrs" => [], "generic" => "", ...},
"name" => "r0",
"optional" => false,
...
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{"extAttrs" => [], ...},
"name" => "x1",
...
},
%{"default" => nil, "extAttrs" => [], "idlType" => %{...}, ...},
%{"default" => nil, "extAttrs" => [], ...}
],
"extAttrs" => [
%{"arguments" => [], "name" => "NewObject", "rhs" => nil, "type" => "extended-attribute"},
%{"arguments" => [], "name" => "Throws", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "CanvasGradient",
"nullable" => false,
"type" => "return-type",
"union" => false
},
"name" => "createRadialGradient",
"special" => "",
"type" => "operation"
}},
{:setter, :set_fill_style, "fillStyle",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/fillStyle",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fillstyle-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", "version_added" => "12"},
"firefox" => %{"release_date" => "2005-11-29", "version_added" => "1.5"},
"firefox_android" => %{"release_date" => "2011-03-29", ...},
"ie" => %{...},
...
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => [
%{"extAttrs" => [], "generic" => "", "idlType" => "DOMString", ...},
%{"extAttrs" => [], "generic" => "", ...},
%{"extAttrs" => [], ...}
],
"nullable" => false,
"type" => "attribute-type",
"union" => true
},
"name" => "fillStyle",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :clear_rect, "clearRect",
[
{:required, "double", {:x, [], nil}},
{:required, "double", {:y, [], nil}},
{:required, "double", {:w, [], nil}},
{:required, "double", {:h, [], ...}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/clearRect",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-clearrect-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", ...},
"firefox" => %{...},
...
}
},
%{
"arguments" => [
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{"extAttrs" => [], "generic" => "", ...},
"name" => "x",
"optional" => false,
...
},
%{
"default" => nil,
"extAttrs" => [],
"idlType" => %{"extAttrs" => [], ...},
"name" => "y",
...
},
%{"default" => nil, "extAttrs" => [], "idlType" => %{...}, ...},
%{"default" => nil, "extAttrs" => [], ...}
],
"extAttrs" => [
%{"arguments" => [], "name" => "LenientFloat", "rhs" => nil, "type" => "extended-attribute"}
],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => "undefined",
"nullable" => false,
...
},
"name" => "clearRect",
"special" => "",
"type" => "operation"
}},
{:setter, :set_stroke_style, "strokeStyle",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/strokeStyle",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-strokestyle-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2008-12-11", "version_added" => "1"},
"chrome_android" => %{"release_date" => "2012-06-27", "version_added" => "18"},
"edge" => %{"release_date" => "2015-07-28", ...},
"firefox" => %{...},
...
}
},
%{
"extAttrs" => [],
"idlType" => %{
"extAttrs" => [],
"generic" => "",
"idlType" => [%{"extAttrs" => [], ...}, %{...}, ...],
"nullable" => false,
"type" => "attribute-type",
...
},
"name" => "strokeStyle",
"readonly" => false,
"special" => "",
"type" => "attribute"
}},
{:op, :set_line_dash, "setLineDash",
[
{:required, [%{"extAttrs" => [], "generic" => "", "idlType" => "double", ...}],
{:segments, [], nil}}
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-setlinedash-dev",
"status" => %{"deprecated" => false, "experimental" => false, "standard_track" => true},
"support" => %{
"chrome" => %{"release_date" => "2012-11-06", ...},
"chrome_android" => %{...},
...
}
},
%{
"arguments" => [%{"default" => nil, "extAttrs" => [], "idlType" => %{...}, ...}],
"extAttrs" => [%{"arguments" => [], "name" => "LenientFloat", ...}, %{"arguments" => [], ...}],
"idlType" => %{"extAttrs" => [], "generic" => "", ...},
"name" => "setLineDash",
"special" => "",
...
}},
{:op, :reset_transform, "resetTransform", [],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/resetTransform",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-resettransform-dev",
"status" => %{"deprecated" => false, "experimental" => true, ...},
"support" => %{"chrome" => %{...}, ...}
},
%{
"arguments" => [],
"extAttrs" => [%{"arguments" => [], ...}],
"idlType" => %{"extAttrs" => [], ...},
"name" => "resetTransform",
...
}},
{:op, :ellipse, "ellipse",
[
{:required, "double", {:x, ...}},
{:required, "double", {...}},
{:required, "double", ...},
{:required, ...},
{...},
...
],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/ellipse",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ellipse-dev",
"status" => %{"deprecated" => false, ...},
"support" => %{...}
},
%{
"arguments" => [%{"default" => nil, ...}, %{...}, ...],
"extAttrs" => [%{...}, ...],
"idlType" => %{...},
...
}},
{:setter, :set_shadow_color, "shadowColor",
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/shadowColor",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-shadowcolor-dev",
"status" => %{"deprecated" => false, ...},
"support" => %{...}
}, %{"extAttrs" => [], "idlType" => %{"extAttrs" => [], ...}, "name" => "shadowColor", ...}},
{:op, :transform, "transform", [{:required, "double", ...}, {:required, ...}, {...}, ...],
%{
"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/transform",
"spec_url" => "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-transform-dev",
...
}, %{"arguments" => [...], ...}},
{:op, :create_image_data, "createImageData", [{:required, ...}],
%{"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/createImageData", ...}, %{...}},
{:setter, :set_line_cap, "lineCap",
%{"mdn_url" => "/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap", ...}, %{...}},
{:op, :draw_focus_if_needed, "drawFocusIfNeeded", [...], ...},
{:setter, :set_shadow_blur, "shadowBlur", ...},
{:setter, :set_line_dash_offset, ...},
{:op, ...},
{...},
...
]
defmodule Canvas do
@moduledoc """
This module represents a [CanvasRenderingContext2D](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D)
All functons are snake cased and setable attributes are `set_attribute_name` functions with one argument
"""
defstruct [:ops, :width, :height]
def new(opts \\ []) do
%__MODULE__{
ops: [],
width: Keyword.get(opts, :width, 300),
height: Keyword.get(opts, :height, 300)
}
end
def set(ctx, key, val) do
push_op(ctx, ["set", [key, val]])
end
def call(ctx, op, arguments) do
push_op(ctx, [op, arguments])
end
def render(ctx) do
{:canvas_static, Enum.reverse(ctx.ops), ctx.width, ctx.height}
|> Kino.Bridge.put_output()
end
defp push_op(ctx, op) do
Map.update!(ctx, :ops, fn old -> [op | old] end)
end
for op <- canvas_ops do
case op do
{:op, fun_atom, func, arguments, _stuff, _i} ->
def_map =
arguments
|> Enum.map(fn
{:required, _, name} -> name
{:optional, _, name, nil} -> {:\\, [], [name, Macro.escape(:unset)]}
{:optional, _, name, %{"value" => value}} -> {:\\, [], [name, Macro.escape(value)]}
end)
|> Enum.reject(&is_nil/1)
arg_map =
arguments
|> Enum.map(fn
{:required, _, name} -> name
{:optional, _, name, _} -> name
end)
def unquote(fun_atom)(ctx, unquote_splicing(def_map)) do
push_op(ctx, [unquote(func), unquote(arg_map)])
end
{:setter, attr_atom, func, _stuff, _i} ->
def unquote(attr_atom)(ctx, args) do
set(ctx, unquote(func), args)
end
end
end
end
{:module, Canvas, <<70, 79, 82, 49, 0, 0, 60, ...>>,
[restore: 1, fill_text: 5, arc: 7, rotate: 2, set_image_smoothing_enabled: 2, fill: 3, ...]}
Canvas.new()
|> Canvas.restore()
|> Canvas.set_line_width(10)
|> Canvas.stroke_rect(100, 100, 100, 100)
|> Canvas.set_font("bold 20px monospace")
|> Canvas.fill_text("Hello World", 70, 70)
|> Canvas.render()
:ok