summaryrefslogtreecommitdiff
path: root/deps/v8/src/torque/declarable.h
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2018-09-21 09:14:51 +0200
committerMichaël Zasso <targos@protonmail.com>2018-09-22 18:29:25 +0200
commit0e7ddbd3d7e9439c67573b854c49cf82c398ae82 (patch)
tree2afe372acde921cb57ddb3444ff00c5adef8848c /deps/v8/src/torque/declarable.h
parent13245dc50da4cb7443c39ef6c68d419d5e6336d4 (diff)
downloadnode-new-0e7ddbd3d7e9439c67573b854c49cf82c398ae82.tar.gz
deps: update V8 to 7.0.276.20
PR-URL: https://github.com/nodejs/node/pull/22754 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'deps/v8/src/torque/declarable.h')
-rw-r--r--deps/v8/src/torque/declarable.h34
1 files changed, 19 insertions, 15 deletions
diff --git a/deps/v8/src/torque/declarable.h b/deps/v8/src/torque/declarable.h
index b8abcca801..315ff8f636 100644
--- a/deps/v8/src/torque/declarable.h
+++ b/deps/v8/src/torque/declarable.h
@@ -20,6 +20,7 @@ namespace torque {
class Scope;
class ScopeChain;
+class Generic;
class Declarable {
public:
@@ -223,35 +224,37 @@ class Callable : public Declarable {
}
void IncrementReturns() { ++returns_; }
bool HasReturns() const { return returns_; }
+ base::Optional<Generic*> generic() const { return generic_; }
protected:
Callable(Declarable::Kind kind, const std::string& name,
- const Signature& signature)
- : Declarable(kind), name_(name), signature_(signature), returns_(0) {}
+ const Signature& signature, base::Optional<Generic*> generic)
+ : Declarable(kind),
+ name_(name),
+ signature_(signature),
+ returns_(0),
+ generic_(generic) {}
private:
std::string name_;
Signature signature_;
size_t returns_;
+ base::Optional<Generic*> generic_;
};
class Macro : public Callable {
public:
DECLARE_DECLARABLE_BOILERPLATE(Macro, macro);
- protected:
- Macro(Declarable::Kind type, const std::string& name,
- const Signature& signature)
- : Callable(type, name, signature) {
+ private:
+ friend class Declarations;
+ Macro(const std::string& name, const Signature& signature,
+ base::Optional<Generic*> generic)
+ : Callable(Declarable::kMacro, name, signature, generic) {
if (signature.parameter_types.var_args) {
ReportError("Varargs are not supported for macros.");
}
}
-
- private:
- friend class Declarations;
- Macro(const std::string& name, const Signature& signature)
- : Macro(Declarable::kMacro, name, signature) {}
};
class MacroList : public Declarable {
@@ -283,8 +286,8 @@ class Builtin : public Callable {
private:
friend class Declarations;
Builtin(const std::string& name, Builtin::Kind kind, bool external,
- const Signature& signature)
- : Callable(Declarable::kBuiltin, name, signature),
+ const Signature& signature, base::Optional<Generic*> generic)
+ : Callable(Declarable::kBuiltin, name, signature, generic),
kind_(kind),
external_(external) {}
@@ -298,8 +301,9 @@ class RuntimeFunction : public Callable {
private:
friend class Declarations;
- RuntimeFunction(const std::string& name, const Signature& signature)
- : Callable(Declarable::kRuntimeFunction, name, signature) {}
+ RuntimeFunction(const std::string& name, const Signature& signature,
+ base::Optional<Generic*> generic)
+ : Callable(Declarable::kRuntimeFunction, name, signature, generic) {}
};
class Generic : public Declarable {