class Less::JavaScript::V8Context
def lock(&block)
def lock(&block) do_lock(&block) rescue V8::JSError => e if e.in_javascript? js_value = e.value.respond_to?(:'[]') name = js_value && e.value["name"] constructor = js_value && e.value['constructor'] if name == "SyntaxError" || ( constructor && constructor.name == "LessError" ) raise Less::ParseError.new(e, js_value ? e.value : nil) end # NOTE: less/parser.js : # # error = new(LessError)({ # index: i, # type: 'Parse', # message: "missing closing `}`", # filename: env.filename # }, env); # # comes back as value: RuntimeError ! elsif e.value.to_s =~ /missing opening `\(`/ raise Less::ParseError.new(e.value.to_s) end raise Less::Error.new(e) end