rhino1.7.7.testsrc.doctests.arguments.doctest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rhino Show documentation
Show all versions of rhino Show documentation
Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically
embedded into Java applications to provide scripting to end users.
// 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/.
js> var args = (function() { return arguments })()
js> Object.getPrototypeOf(args) === Object.prototype
true
js> args.constructor === Object.prototype.constructor
true
js> Object.getOwnPropertyDescriptor(args, "constructor") === void 0
true
js> args.toString()
[object Arguments]
js> var toStr = Object.prototype.toString;
js> var _ = Object.prototype.toString = function() {
> return this === args ?
> "executes Object.prototype.toString.call(arguments)" :
> "'this' should be 'arguments'"
> }
js> args.toString()
executes Object.prototype.toString.call(arguments)
js> Object.prototype.toString = toStr; undefined
js> var toLocStr = Object.prototype.toLocaleString;
js> var _ = Object.prototype.toLocaleString = function() {
> return this === args ?
> "executes Object.prototype.toLocaleString.call(arguments)" :
> "'this' should be 'arguments'"
> }
js> args.toLocaleString()
executes Object.prototype.toLocaleString.call(arguments)
js> Object.prototype.toLocaleString = toLocStr; undefined;
js> (function() { return arguments[2] })('a','b','c')
c
js> (function(x,y,z) { return arguments[2] })('a','b','c')
c
js> (function(x) {
> arguments[0] = "modified";
> return x;
> })("original")
modified
js> (function(x) {
> x = "modified";
> return arguments[0];
> })("original")
modified
js> (function(x) {
> delete arguments[0];
> arguments[0] = "modified";
> return x;
> })("original")
original
js> (function(x) {
> delete x;
> var x = "modified";
> return arguments[0]
> })("original")
modified
js> (function(x) {
> Object.defineProperty(arguments, 0, {get:function(){return "modified"}});
> return arguments[0];
> })("original")
modified
js> (function(x) {
> Object.defineProperty(arguments, 0, {get:function(){return "modified"}});
> return x;
> })("original")
original
js> (function(x) {
> Object.defineProperty(arguments, 0, {value:"modified"});
> return arguments[0];
> })("original")
modified
js> (function(x) {
> Object.defineProperty(arguments, 0, {value:"modified"});
> return x;
> })("original")
modified
js> (function() { for (var i in arguments) print(i); })('a','b','c')
0
1
2
js> (function() {
> arguments.a = 1;
> Object.defineProperty(arguments, 'b', {value:2, enumerable:true});
> Object.defineProperty(arguments, 'c', {value:3, enumerable:false});
> Object.defineProperty(arguments, 0, {enumerable:false});
> for (var p in arguments) print(p);
> })('hi')
a
b
js> (function() { return Object.getOwnPropertyDescriptor(arguments, 0) === undefined })()
true
js> (function() { return Object.getOwnPropertyDescriptor(arguments, 0).toSource(); })("a")
({value:"a", writable:true, enumerable:true, configurable:true})
js> (function(x) {
> Object.defineProperty(arguments, 0, {enumerable:false});
> return Object.getOwnPropertyDescriptor(arguments, 0).enumerable;
> })("original")
false
js> (function() {
> Object.defineProperty(arguments, 0, {value:2, writable:false});
> arguments[0] = 3;
> return arguments[0];
> })(1);
2
© 2015 - 2024 Weber Informatics LLC | Privacy Policy