mirror of
https://github.com/rustwasm/wasm-bindgen.git
synced 2024-11-24 14:42:35 +03:00
Add Function
construtor to js-sys
This commit is contained in:
parent
8cd8ae6d10
commit
081f2fdc65
@ -722,6 +722,17 @@ extern "C" {
|
||||
#[derive(Clone, Debug)]
|
||||
pub type Function;
|
||||
|
||||
/// The `Function` constructor creates a new `Function` object. Calling the
|
||||
/// constructor directly can create functions dynamically, but suffers from
|
||||
/// security and similar (but far less significant) performance issues
|
||||
/// similar to `eval`. However, unlike `eval`, the `Function` constructor
|
||||
/// allows executing code in the global scope, prompting better programming
|
||||
/// habits and allowing for more efficient code minification.
|
||||
///
|
||||
/// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
|
||||
#[wasm_bindgen(constructor)]
|
||||
pub fn new_no_args(body: &str) -> Function;
|
||||
|
||||
/// The apply() method calls a function with a given this value, and arguments provided as an array
|
||||
/// (or an array-like object).
|
||||
///
|
||||
|
@ -5,9 +5,6 @@ use js_sys::{Array, Function};
|
||||
|
||||
#[wasm_bindgen]
|
||||
extern {
|
||||
#[wasm_bindgen(js_name = Function)]
|
||||
fn new_function(s: &str) -> Function;
|
||||
|
||||
type This;
|
||||
#[wasm_bindgen(method, getter, structural, js_name = self)]
|
||||
fn self_(me: &This) -> JsValue;
|
||||
@ -56,7 +53,7 @@ pub fn is_browser() -> bool {
|
||||
// * Last but not least, test whether `self` is defined or not.
|
||||
//
|
||||
// Whew!
|
||||
let this = new_function("return this")
|
||||
let this = Function::new_no_args("return this")
|
||||
.apply(&JsValue::undefined(), &Array::new())
|
||||
.unwrap();
|
||||
assert!(this != JsValue::undefined());
|
||||
|
Loading…
Reference in New Issue
Block a user