characterdata: add insertData method

Signed-off-by: Francis Bouvier <francis.bouvier@gmail.com>
This commit is contained in:
Francis Bouvier
2023-10-09 14:34:37 +02:00
parent be716e591d
commit 7951498ab5
2 changed files with 16 additions and 1 deletions

View File

@@ -62,6 +62,10 @@ pub const CharacterData = struct {
pub fn _deleteData(self: *parser.CharacterData, offset: u32, count: u32) void { pub fn _deleteData(self: *parser.CharacterData, offset: u32, count: u32) void {
return parser.characterDataDeleteData(self, offset, count); return parser.characterDataDeleteData(self, offset, count);
} }
pub fn _insertData(self: *parser.CharacterData, offset: u32, data: []const u8) void {
return parser.characterDataInsertData(self, offset, data);
}
}; };
pub const Types = generate.Tuple(.{ pub const Types = generate.Tuple(.{
@@ -125,7 +129,13 @@ pub fn testExecFn(
var delete_data = [_]Case{ var delete_data = [_]Case{
.{ .src = "cdata.deleteData('OK'.length, ' modified'.length)", .ex = "undefined" }, .{ .src = "cdata.deleteData('OK'.length, ' modified'.length)", .ex = "undefined" },
.{ .src = "cdata.data", .ex = "OK" }, .{ .src = "cdata.data == 'OK'", .ex = "true" },
}; };
try checkCases(js_env, &delete_data); try checkCases(js_env, &delete_data);
var insert_data = [_]Case{
.{ .src = "cdata.insertData('OK'.length-1, 'modified')", .ex = "undefined" },
.{ .src = "cdata.data == 'OmodifiedK'", .ex = "true" },
};
try checkCases(js_env, &insert_data);
} }

View File

@@ -484,6 +484,11 @@ pub fn characterDataDeleteData(cdata: *CharacterData, offset: u32, count: u32) v
_ = characterDataVtable(cdata).dom_characterdata_delete_data.?(cdata, offset, count); _ = characterDataVtable(cdata).dom_characterdata_delete_data.?(cdata, offset, count);
} }
pub fn characterDataInsertData(cdata: *CharacterData, offset: u32, data: []const u8) void {
const s = stringFromData(data);
_ = characterDataVtable(cdata).dom_characterdata_insert_data.?(cdata, offset, s);
}
// Text // Text
pub const Text = c.dom_text; pub const Text = c.dom_text;