Changes
allow invocations specifying the page parameter to use the mw.loadData optimisations, and don't call mw.title.new every time
do
local pagename = obj:parameter('demopage')
local success, titleObj if pagename then success, titleObj = pcall(mw.title.new, pagename) end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()