47 lines
2.1 KiB
Text
47 lines
2.1 KiB
Text
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
*
|
|
* 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/. */
|
|
|
|
#include "nsISupports.idl"
|
|
/*
|
|
* Test interface for https://bugzilla.mozilla.org/show_bug.cgi?id=809674 .
|
|
*
|
|
* This test makes sure that accessing JS-implemented attributes or methods
|
|
* marked with [implicit_jscontext] works as expected.
|
|
*
|
|
* It also makes sure [optional_argc] is not supported on JS-implemented
|
|
* methods.
|
|
*/
|
|
|
|
[scriptable, uuid(2df46559-da21-49bf-b863-0d7b7bbcbc73)]
|
|
interface nsIXPCTestBug809674 : nsISupports {
|
|
// Various interesting [implicit_jscontext] cases.
|
|
[implicit_jscontext] unsigned long addArgs(in unsigned long x, in unsigned long y);
|
|
[implicit_jscontext] unsigned long addSubMulArgs(in unsigned long x, in unsigned long y,
|
|
out unsigned long subOut,
|
|
out unsigned long mulOut);
|
|
[implicit_jscontext] jsval addVals(in jsval x, in jsval y);
|
|
|
|
[implicit_jscontext] unsigned long methodNoArgs();
|
|
[implicit_jscontext] void methodNoArgsNoRetVal();
|
|
|
|
// When there are many arguments, the context is passed on the stack on
|
|
// most platforms.
|
|
[implicit_jscontext] unsigned long addMany(in unsigned long x1,
|
|
in unsigned long x2,
|
|
in unsigned long x3,
|
|
in unsigned long x4,
|
|
in unsigned long x5,
|
|
in unsigned long x6,
|
|
in unsigned long x7,
|
|
in unsigned long x8);
|
|
|
|
// Attributes can use [implicit_jscontext], too.
|
|
[implicit_jscontext] attribute jsval valProperty;
|
|
[implicit_jscontext] attribute unsigned long uintProperty;
|
|
|
|
// [optional_argc] is not supported.
|
|
[optional_argc] void methodWithOptionalArgc();
|
|
};
|