Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save trycf/fa7ea946dabb1e666fa2891e2a9463ca to your computer and use it in GitHub Desktop.
Save trycf/fa7ea946dabb1e666fa2891e2a9463ca to your computer and use it in GitHub Desktop.
TryCF Gist
<cfscript>
function assert( actual, expected ) {
if ( expected == actual ) {
writeOutput( "✔" )
} else {
writeOutput( "✗" )
}
writeOutput( " expected `#expected#`, got `#actual#`<br>" );
}
original = {
"a": 10,
"b": [
20,30
],
"c": [
{ "d": 40 }
]
}
dup = duplicate( original );
dup.z = 50;
// mutate the original
original.a = 100;
original.b.append(400);
original.c[ 1 ].d = 500;
original.c[ 1 ].e = 600;
dup.y = 50;
assert( original.keyExists( "z" ), false );
assert( original.a, 100 );
assert( dup.keyExists( "y" ), false );
assert( dup.a, 10 );
assert( original.b.len(), 3 );
assert( dup.b.len(), 2 );
assert( original.c[ 1 ].d, 500 );
assert( original.c[ 1 ].e, 600 );
assert( dup.c[ 1 ].d, 40 );
assert( dup.c[ 1 ].keyExists("e"), false );
</cfscript>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment