mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-03 17:58:55 +02:00
- Implemented `checkType` on more UniFFI FFIConverters.
- Updated the way we handle locating the errors.
- The old system was that `checkType` inputted a `name` parameter. I
think the idea was that parent types would calculate a name
parameter for their children. However, this wasn't great because
it meant we would need to build the strings up-front and throw
them away in the vast majority of cases where there was no type
error.
- The new system is that we use the `UniFFITypeError` class, which
has a `prependPath` method. This gets called by the parent type
FFIConverter to basically do the same work, but it only needs to
happen when there's actually an error.
- I think the resulting error messages are pretty good. I got this
when passing a list with garbage data to setLocalTabs: "TypeError:
remoteTabs[0].title: undefined is not a string"
- Added the `UniFFI.sys.mjs` module, which contains shared, non-generated,
UniFFI JS code. This is prep-work for
https://bugzilla.mozilla.org/show_bug.cgi?id=1804078.
Differential Revision: https://phabricator.services.mozilla.com/D166479
36 lines
909 B
Python
36 lines
909 B
Python
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
FINAL_LIBRARY = "xul"
|
|
|
|
UNIFIED_SOURCES += [
|
|
"OwnedRustBuffer.cpp",
|
|
"UniFFICallbacks.cpp",
|
|
"UniFFIGeneratedScaffolding.cpp",
|
|
"UniFFIPointer.cpp",
|
|
"UniFFIScaffolding.cpp",
|
|
]
|
|
|
|
if CONFIG["MOZ_UNIFFI_FIXTURES"]:
|
|
DEFINES["MOZ_UNIFFI_FIXTURES"] = True
|
|
UNIFIED_SOURCES += [
|
|
"UniFFIFixtureScaffolding.cpp",
|
|
]
|
|
|
|
EXPORTS.mozilla.dom += [
|
|
"OwnedRustBuffer.h",
|
|
"ScaffoldingCall.h",
|
|
"ScaffoldingConverter.h",
|
|
"UniFFICallbacks.h",
|
|
"UniFFIPointer.h",
|
|
"UniFFIPointerType.h",
|
|
"UniFFIRust.h",
|
|
"UniFFIScaffolding.h",
|
|
]
|
|
|
|
EXTRA_JS_MODULES += [
|
|
"js/UniFFI.sys.mjs",
|
|
]
|